1

我有一个 MVVM 应用程序正在运行并尝试在数据网格中绑定一个复选框,但 Propertychanged 事件只是没有触发。我已经在视图模型和基类上实现了 INotifypropertychanged,但该属性仍然没有触发并且复选框没有更新。我已经尝试了所有可能的方法,例如设置 updatesourcetrigger=explicit 或 propertychanged,但它确实不起作用。我可能做错了什么?我没有办法弄清楚。网格的数据上下文设置为绑定到 ObservableCollection 的 ListViewCollection。

                    <DataGridCheckBoxColumn Header="Tier1" Binding="{Binding Tier1Check,Mode=TwoWay}"></DataGridCheckBoxColumn>
                    <DataGridCheckBoxColumn Header="Tier2" Binding="{Binding Tier2Check,Mode=TwoWay}"></DataGridCheckBoxColumn>
                    <DataGridCheckBoxColumn Header="Tier3" Binding="{Binding Tier3Check,Mode=TwoWay}"></DataGridCheckBoxColumn>
                    <DataGridCheckBoxColumn Header="DoNotUse" Binding="{Binding DoNotUseCheck,Mode=TwoWay}"></DataGridCheckBoxColumn>

                    <!--<DataGridCheckBoxColumn Header="Tier1" Binding="{Binding IsChecked}"  />
                    <DataGridCheckBoxColumn Header="Tier2" Binding="{Binding IsChecked}" />
                    <DataGridCheckBoxColumn Header="Tier3" Binding="{Binding IsChecked}"/>-->
            </DataGrid.Columns>
        </DataGrid>

ViewModel...我有四个复选框,代码专门用于使它们互斥。

 public bool? Tier1Check
      {
          get
          {
              return Tier1Check;
          }

          set
          {
              Tier1Check = value;
              Tier2Check = false;
              Tier3Check = false;
              DoNotUseCheck = false;
              RaisePropertyChanged("Tier2Check");
              RaisePropertyChanged("Tier3Check");
              RaisePropertyChanged("Tier1Check");
              RaisePropertyChanged("DoNotUseCheck");
          }
      }
4

0 回答 0