【问题标题】:Binding WPF Combobox within Datagrid in MVVM not saving changes在 MVVM 中的 Datagrid 中绑定 WPF 组合框不保存更改
【发布时间】:2011-06-24 15:32:13
【问题描述】:

我有一个使用 MVVM 设计模式定义的 DataGrid:

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

通过绑定到 ViewModel 中的 ObservableCollection,Combobox 被正确填充。还有其他列(此处未显示)正确绑定到视图模型中定义的检查上的各种属性。

在初始加载时,组合框正确绑定到代表 MFGCode 的 InspectionDetail 上的选定值。

唯一的问题是,当我更改组合框中的值时,新的 SelectedValue 并没有像我对 TwoWay 绑定所期望的那样保存到 SelectedDetail 的 MFGCode 属性中。

我可以提供 ViewModel 代码,因为它会有所帮助,请问。

谢谢!

【问题讨论】:

    标签: c# wpf mvvm combobox wpfdatagrid


    【解决方案1】:

    试试这个

    SelectedValue="{Binding MFGCode,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2015-12-17
      • 2022-12-17
      • 2015-09-15
      • 1970-01-01
      • 2018-01-17
      • 2021-10-11
      • 2015-07-11
      • 2015-04-27
      相关资源
      最近更新 更多