2009-11-24 62 views
0

我在WPF數據網格(WPF工具包)中編輯單元格的問題。模板是用ComboBox構建的,並且ItemsSource的 ComboBox在運行時加載。DataTemplate和ObjectDataProvider刷新問題

這是平均碼...

<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的selectedchanged事件上插入dataValuesProvider(dataValuesProvider = null)的重置。

(dataValuesProvider將在所選行的特定單元格上的輸入後加載)。

這就是問題所在:當我重置dataValuesProvider(在一個新行的selectionchanged上)時,它修改了ComboBox的SelectedValue並清除了前一行的Property1。

我認爲有這種行爲,因爲單元格的編輯模板沒有更新綁定關聯,直到我編輯單元格。這是正確的?

我該如何避免這個問題?

回答

0

我還沒有解決

但是我已經定義了一個簡單的項目,顯示的問題。

你可以從這個鏈接下載:http://pollosky.it/wp-content/uploads/2009/12/ObjectProviderTest.zip

嘗試從第一行的第二個單元格selectvalue然後去第二排。第一行屬性的值被清除!

我該怎麼辦?

+0

有人嗎?關於這個問題的任何信息或意見對我有用......你怎麼看? – 2009-12-10 08:14:11