0

我在 WPF 数据网格(WPF 工具包)中编辑单元格模板时遇到问题。该模板是使用 ComboBox 构建的,并且 ComboBox 的 ItemsSource 在运行时加载。

这是平均代码...

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

我认为存在这种行为是因为单元格的编辑模板在我编辑单元格之前不会更新绑定关联。这是正确的?

我该怎么做才能避免这个问题?

4

1 回答 1

0

我还没有解决

但是我已经定义了一个显示问题的简单项目。

您可以从此链接下载它:http: //pollosky.it/wp-content/uploads/2009/12/ObjectProviderTest.zip

尝试从第一行的第二个单元格中选择值,然后转到第二行。第一行属性值清零!

我能怎么做?

于 2009-12-03T09:22:20.407 回答