我写了一个问题的最小版本,它只包含一个包含3列的DataGrid。
要求:
(a)必须使用相同的定义和处理来实现填充两个ComboBox的列。它们必须基本上是相互复制和粘贴的。
(b)我不能使用基于List<string>
的简单方法。我需要一个更有特色的自定义对象。
不用多说,你去吧......
http://patriot.net/~ramon/app-question/
问题:为什么我的右栏没有绑定?缺少什么?
TIA,
-Travis
答案 0 :(得分:2)
你的右栏错了。您使用的SelectedValue
应该是SelectedItem
,并且您需要直接绑定到该项而不是它的值:
<DataGridTemplateColumn Header=" Right Column ">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding Caliber, RelativeSource={RelativeSource AncestorType=Window}, Mode=OneWay}"
DisplayMemberPath="Thickness"
SelectedItem="{Binding Selection, UpdateSourceTrigger=PropertyChanged}">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="IsEnabled" Value="{Binding Enabled}"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
请删除所有不需要的代码,并使用foreach
代替for
循环,并使用适当的var
关键字,并使用适当的object initializer
s。