INotifyPropertyChangedインターフェイスを実装するオブジェクトを使用して、DataGridの列を監視可能なコレクションに正常にバインドしました。
これはxamlです:
<dxg:GridColumn Name="Name" FieldName="Stapel" DisplayMemberBinding="{Binding Path=Name}" />
そして、objectsクラスのプロパティ:
public string Name
{
get { return _name; }
set
{
if (value == _name) return;
_name = value;
OnPropertyChanged("Name");
}
}
しかし、別のコラムでは、テンプレートを使用しています。
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Rectangle Height="19" Width="19" Fill="{Binding Path=Data.StatusColor}"></Rectangle>
</StackPanel>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
長方形のFillプロパティは、「計算された」プロパティにバインドされています。
public SolidColorBrush StatusColor
{
get
{
if (StapelStatus == StapelStatus.Neu)
{
return new SolidColorBrush(Colors.CornflowerBlue);
}
return new SolidColorBrush(Colors.DarkOrange);
}
}
の値を変更する他のいくつかのプロパティセッターStapelStatus
が呼び出し ています
OnPropertyChanged("StatusColor");
グリッド列の長方形の色も変更するにはこれで十分だと思いました。しかし、残念ながら、StapelStatus
が変更さOnPropertyChanged("StatusColor")
れてグリッドと呼ばれる場合、この変更は反映されません。どういうわけか、のバインディングを変更する必要があると思いDataTemplate
ます。誰かアドバイスをいただけますか?