DataGridTemplateColumn ComboBox绑定和编辑

时间:2013-09-19 14:07:03

标签: wpf wpfdatagrid datagridtemplatecolumn

<DataGridTemplateColumn Header="Brand Code">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox IsEditable="True" Text="{Binding Path=BrandCode, Mode=OneWayToSource}" ItemsSource="{Binding Brands}"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

上面的代码显示了列表,但是当我选择它没有分配给BrandCode的值时。

但如果我点击下一栏编辑,则该值将分配给BrandCode,

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

请改为尝试:

<ComboBox IsEditable="True" SelectedItem="{Binding Path=BrandCode, 
    Mode=OneWayToSource}" ItemsSource="{Binding Brands}"/>

这取决于您的商品中的内容,但如果您的商品是某个类的实例并且您想要返回特定的属性值,那么您也可以尝试这样:

<ComboBox IsEditable="True" SelectedValue="{Binding Path=BrandCode, 
    Mode=OneWayToSource}" SelectedValuePath="NameOfPropertyToReturn" 
    ItemsSource="{Binding Brands}"/>

我刚刚测试过它肯定有用......如果它对你不起作用,你的代码中的其他地方就会出现问题:

<StackPanel>
    <ComboBox ItemsSource="{Binding Brands}" SelectedItem="{Binding BrandCode}" />
    <TextBlock Text="{Binding SelectedValue}" />
</StackPanel>

更新&gt;&gt;&gt;

在看到您的数据类的最新代码后,我可以看到您的问题...如何在不了解INotifyPropertyChanged界面的情况下编写任何WPF?两者齐头并进。您的解决方案是在Data课程中实现此界面。有关此问题,请参阅MDSN的INotifyPropertyChanged Interface页面。

请注意如果您首先向我们展示了所有代码,我们可以立即修复此问题