WPF DataGrid (WPF Toolkit)에서 셀의 편집 템플리트에 문제가 있습니다. 템플릿은 ComboBox로 빌드되고 ComboBox의 ItemsSource는 런타임에로드됩니다.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를 업데이트해야합니다. 그럼 난 dataValues의 resetchanged 이벤트에 dataValuesProvider (dataValuesProvider = null)의 재설정을 삽입했습니다.
(dataValuesProvider는 선택한 행의 특정 셀에 대한 입력 이후에로드됩니다.)
이것은 문제입니다. dataValuesProvider (새 행의 선택 변경시)를 다시 설정하면 ComboBox의 SelectedValue가 수정되고 이전 행의 Property1이 지워집니다.
셀을 편집 할 때까지 셀의 편집 템플릿이 바인딩 연결을 업데이트하지 않기 때문에이 동작이 있다고 생각합니다. 그렇지?
이 문제를 방지하려면 어떻게해야합니까?
누구? 이 문제에 관한 정보 나 의견은 나에게 유용합니다 ... 어떻게 생각하십니까? –