【发布时间】:2014-06-03 19:56:43
【问题描述】:
我正在使用MVVM,我想将模板应用于我的数据网格的特定列。
我创建了具有名称、成本、属性的机器类。
我还创建了具有名称属性、ExecutiveMachine 属性的操作类(类型:机器)
当我使用 itemsSource 显示我的操作列表时,我看到了我的机器的路径,而我想显示它们的名称。
我添加了DataGridTemplateColumn,但现在我有两次机器列(一个正确,另一个不正确)
其实我的代码是:
<DataGrid ItemsSource="{Binding Path=Operations}" Name="datagridOperation" Width="Auto" Height="Auto" Margin="10" HorizontalContentAlignment="Center" SelectionMode="Single" MinColumnWidth="80" CanUserAddRows="False" CanUserDeleteRows="False" RowBackground="DimGray" AlternatingRowBackground="#FF3E3E3E" AlternationCount="1" IsReadOnly="True" SelectionChanged="UpdateOperationComboBox">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Machine" CanUserSort="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=ExecutiveMachine.Name}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我的第一个想法是手动添加DataGridColumns。我试过了,但是当我这样做时,我的所有列都有两倍,如果我删除我的DataGrid 的ItemsSource 属性,我只有一次,但三列变为空。
如果我的想法不错,怎么绑定这个ItemsSource?
【问题讨论】:
-
手动插入列并将
DataGrid.AutoGenerateColumns设置为False。
标签: c# visual-studio-2010 mvvm