2
我有定義爲這樣一個MVVM設計圖案數據網格:綁定WPF組合框內數據網格中MVVM不保存變化
<DataGrid Margin="10" Height="385" Width="1000" ItemsSource="{Binding Inspection.Details}" SelectedItem="{Binding SelectedDetail, Mode=TwoWay}" AutoGenerateColumns="False" CanUserAddRows="False" x:Name="grdDetails" CanUserSortColumns="True" HorizontalScrollBarVisibility="Visible" CanUserResizeColumns="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Code" Width="120" SortMemberPath="MFGCode">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<ComboBox FontSize="20" ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}},Path=DataContext.MFGCodes}" DisplayMemberPath="Value" SelectedValuePath="Value" SelectedValue="{Binding MFGCode,Mode=TwoWay}"></ComboBox>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
組合框被正確填充,通過結合到視圖模型內的ObservableCollection。還有其他列(這裏沒有提供)正在綁定到視圖模型中定義的Inspection上的各種屬性。
對於初始加載,組合框正確地綁定到InspectionDetail上代表MFGCode的選定值。
唯一的問題是,當我更改組合框中的值時,新的SelectedValue未被保存到SelectedDetail的MFGCode屬性中,正如我期望的使用TwoWay綁定一樣。
我可以提供ViewModel代碼,因爲它會有幫助,只是問。
謝謝!