小编Dan*_*iel的帖子

WPF DataGrid:通过 ItemsSoure 的数据类型选择 CellTemplate

我正在构建一个 DataGrid,我想根据当前项目的基础数据类型在单元格内切换图像。

问:是否可以应用这种类型的模板切换?最好仅使用 xaml?

项目来源是

ObservableCollection<BaseModel>
Run Code Online (Sandbox Code Playgroud)

其中包含类型的项目

IncidentModel : BaseModel
ServiceModel : BaseModel
Run Code Online (Sandbox Code Playgroud)

这就是我目前所处的位置:

<DataGrid 
    ItemsSource="{Binding TicketCollection,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}"
    IsReadOnly="True"
    AutoGenerateColumns="False"
    DockPanel.Dock="Top">

    <DataGrid.Resources>
        <DataTemplate DataType="{x:Type models:IncidentModel}">
            <Image Source="pack://application:,,,/SMLib;component/Files/Images/16x16/Active_16.png" />

        </DataTemplate>
        <DataTemplate DataType="{x:Type models:ServiceModel}">
            <Image Source="pack://application:,,,/SMLib;component/Files/Images/16x16/IncidentMgmt_AllIncidents_16.png" />

        </DataTemplate>
    </DataGrid.Resources>

    <DataGrid.Columns>

        <DataGridTemplateColumn Header="Typ">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>

                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

        <DataGridTextColumn Header="Id" Binding="{Binding Id,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
        <DataGridTextColumn Header="Titel" Binding="{Binding Title,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
        <DataGridTextColumn Header="Status" Binding="{Binding Status,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
        <DataGridTextColumn Header="Erstellung" Binding="{Binding CreatedDate,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

感谢您提供的一切可能的帮助!

wpf datagrid types celltemplate

2
推荐指数
1
解决办法
4404
查看次数

标签 统计

celltemplate ×1

datagrid ×1

types ×1

wpf ×1