来自资源的图像源>>

问题描述 投票:1回答:1

我的问题:

我需要一个具有4列的DataGrid。其中之一应显示图像。我为此使用了DataGridTemplateColumn,其他的都是简单的TextColumns。我每行需要不同的图像,这就是为什么我需要将它们与我的类中其他属性绑定在一起的原因。

我尝试在设置时使用Image类型的属性

AutoGenerateColumns =“ true”

而且我已经厌倦了将图像路径与一个字符串属性绑定在一起,该字符串属性填充了我项目资源中的路径,但这也不起作用。

有人知道如何解决这个问题吗?

我后面的代码是:
public List<MyClass> MyCollection {get; set;}//<--- This is what I bind !

public class MyClass
{
    public string A { get; set; } 
    public string ImagePath { get; set; }
    public int X { get; set; } 
    public string User { get; set; }
}

我的XAML是这样:
<Window.Resources>
    <CollectionViewSource x:Key="EntryCollection" Source="{Binding Path=MyCollection , Mode=OneWay}"/>
</Window.Resources>
<DataGrid ItemsSource="{Binding Source={StaticResource EntryCollection}, Mode=OneWay}" SelectedItem="{Binding Path=SelectedEntry, Mode=TwoWay}"
                IsReadOnly="true" 
                AutoGenerateColumns="False" 
                SelectionUnit="FullRow"
                SelectionMode="Extended"
                HorizontalAlignment="Stretch"
                Grid.Column="0"
                ScrollViewer.CanContentScroll="True"
                ScrollViewer.VerticalScrollBarVisibility="Auto"
                ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                Width="Auto">                
            <DataGrid.Columns>                    
                <DataGridTemplateColumn Header="Image" Width="Auto">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Image Width="16" Height="16" Source="{Binding Path=ImagePath, Mode=OneWay}" VerticalAlignment="Top" HorizontalAlignment="Center" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Header="User" Binding="{Binding Path=User, Mode=OneWay}" Width="Auto" />
                <DataGridTextColumn Header="StringA" Binding="{Binding Path=A, Mode=OneWay}" Width="Auto" />
                <DataGridTextColumn Header="INT X" Binding="{Binding Path=X, Mode=OneWay}"  Width="Auto" />                   

提前感谢!

我的问题:我需要一个4列的DataGrid。其中之一应显示图像。我为此使用了DataGridTemplateColumn,其他的都是简单的TextColumns。我每行需要不同的图像,并且这...

c# wpf datagrid datagridtemplatecolumn
1个回答
1
投票

您的ImagePath属性应为

© www.soinside.com 2019 - 2024. All rights reserved.