c# - DataGrid SelectedItem 不更新

标签 c# wpf datagrid

所以我在这里真的很困惑。

我创建了一个数据网格,以两种方式绑定(bind)其项目源并以两种方式绑定(bind)其选定项目。所选项目的 getter 被调用,但 setter 永远不会调用。所有的碎片似乎都在这里。我错过了什么?

 <DataGrid ItemsSource="{Binding Properties ,Mode=TwoWay}" 
                  SelectedItem="{Binding SelectedProperty ,Mode=TwoWay}" 
                  CanUserDeleteRows="False"  CanUserAddRows="False" AutoGenerateColumns="False" Background="LightBlue">

   <DataGrid.Columns>
      <DataGridTextColumn IsReadOnly="True"  Header="Address" Binding="{Binding Address}"/>
   </DataGrid.Columns>
   <DataGrid.RowDetailsTemplate>
     <DataTemplate>
        <DataGrid ItemsSource="{Binding Units ,Mode=TwoWay}" 
                  SelectedItem="{Binding SelectedUnit, Mode=TwoWay}" 
                  CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False">

我的第一个数据网格工作正常,包括所选项目。

然而,第二个第三个和第四个嵌套网格不绑定(bind)到所选项目。项目来源有效,仅此而已

   public class PropertyModel : ModelBase
   {
    private ObservableCollection<UnitModel> _Units;

    public ObservableCollection<UnitModel> Units
    {
        get { return _Units; }
        set { _Units = value; }
    }
    private UnitModel _SelectedUnit;

    public UnitModel SelectedUnit
    {
        get { return _SelectedUnit; }
        set { _SelectedUnit = value; OnPropertyChanged("SelectedUnit"); }
    }

输出窗口中没有显示绑定(bind)表达式错误或任何其他错误。

最佳答案

这个问题的答案其实很明显。

我忘了输入 UpdateSourceTrigger=PropertyChanged

应该是这样的

 <DataGrid ItemsSource="{Binding Units ,Mode=TwoWay}" 
       SelectedItem="{Binding SelectedUnit,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
       CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False">

问题解决了

关于c# - DataGrid SelectedItem 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28298781/

相关文章:

c# - WPF DataGrid 触发单元格内容

c# - ASP.NET:更改隐藏代码中的 CSS 链接 href?

c# - 禁用的文本框丢失 View 状态

c# - 如何找出图像的相对路径

c# - MVC 通过 C#/WPF : how to notify view?

wpf - 从嵌套的 ItemsControls 中指定完整的绑定(bind)路径

c# - DataGrid mvvm/wpf 内的 ComboBox 上的 SelectionChanged 的​​ EventToCommand

c# - 将结构从 c# 传递到 C dll

c# - 是否可以在加载 xml 时转义 & ?

C# WPF 窗口宽度、MaxWidth、MinWidth 被忽略