仍在尝试将嵌套属性模型绑定到DataGrid

时间:2013-12-02 18:36:31

标签: c# wpf data-binding binding datagrid

我写了一个问题的最小版本,它只包含一个包含3列的DataGrid。

要求:

(a)必须使用相同的定义和处理来实现填充两个ComboBox的列。它们必须基本上是相互复制和粘贴的。

(b)我不能使用基于List<string>的简单方法。我需要一个更有特色的自定义对象。

不用多说,你去吧......

http://patriot.net/~ramon/app-question/

问题:为什么我的右栏没有绑定?缺少什么?

TIA,

-Travis

1 个答案:

答案 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。