0

ETA:我正在使用 Caliburn.Micro,因此 Grid 的 x:Name 属性被绑定到 VM 上名为 MyData 的属性,该属性又具有属性 IsTrue。MyData 确实继承自 PropertyChangeBase

我有一个 DataGrid,其列绑定到 ViewModel 上的 bool 属性:

<DataGrid x:Name="MyData"
                  AutoGenerateColumns="False"
                      Width="282"
                      RowHeaderWidth="0"
                      CanUserAddRows="false">
  <DataGrid.Columns>
     <DataGridCheckBoxColumn Header="MyChckColumn"
                     Binding="{Binding IsTrue, Mode=TwoWay}"
                     Width="80"/>
   </DataGrid.Columns>
</DataGrid>

它仅在选择网格上的其他内容时才进入设置器,但在我实际选中一个空框时不会进入。

  public bool IsTrue
  {
     get
     {
        return _isTrue;
     }
     set
     {
        if (value.Equals(_isTrue)) return;
        _isTrue= value;
        NotifyOfPropertyChange(() => IsTrue);
     }
  }

是否有一些我需要调用的验证方法或需要设置的触发器?

4

1 回答 1

1

要获得您所追求的行为,您必须将UpdateSourceTrigger绑定的属性设置为PropertyChanged.

默认情况下,当单元格失去焦点时会更新绑定源。

Binding="{Binding IsTrue, UpdateSourceTrigger=PropertyChanged}"
于 2013-03-21T19:51:32.080 回答