WPF数据网格(WPF Toolkit)中的单元格编辑模板有问题。该模板使用ComboBox和ItemsSource构建 ComboBox在运行时加载。
这是平均代码......
<ObjectDataProvider x:Key="dataValuesProvider" MethodName="GetValues" />
<toolkit:DataGrid
ItemsSource="{Binding Path=MyItems}">
<toolkit:DataGridTemplateColumn
Header="Property1">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Property1, ValidatesOnDataErrors=true}"/>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
<toolkit:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox
SelectedValue="{Binding Path=Property1, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
IsEditable="True"
IsSynchronizedWithCurrentItem="False"
ItemsSource="{Binding Source={StaticResource dataValuesProvider}, Mode=OneWay}"
/>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellEditingTemplate>
</toolkit:DataGridTemplateColumn></toolkit:DataGrid>
现在,我遇到了这个问题。
我必须在每行上使用不同的值更新dataValuesProvider。然后我在datagrid的selectionchanged事件上插入了dataValuesProvider(dataValuesProvider = null)的重置。
(dataValuesProvider将在所选行的特定单元格上输入后加载。)
这是问题所在:当我重置dataValuesProvider(在新行的selectionchanged上)时,它修改了ComboBox的SelectedValue并清除了前一行的Property1。
我认为存在这种行为,因为在编辑单元格之前,单元格的编辑模板不会更新绑定关联。这是对的吗?
如何避免此问题?
答案 0 :(得分:0)
我还没有解决
但是我已经定义了一个显示问题的简单项目。
您可以从以下链接下载:http://pollosky.it/wp-content/uploads/2009/12/ObjectProviderTest.zip
尝试从第一行的第二个单元格中选择值,然后转到第二行。清除第一行属性的值!
我该怎么办?