0

ETA:Caliburn.Microを使用しているので、グリッドのx:Nameプロパティは、プロパティIsTrueを持つMyDataというVM上のプロパティにバインドされています。MyDataはPropertyChangeBaseから継承します

ViewModelのboolプロパティにバインドされた列を持つDataGridがあります。

<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 に答える