あなたの助けが必要です。アプリケーションで MVVM デザイン パターンを使用しています。データグリッド内にコンボボックスがあります:
<telerik:RadGridView AutoGenerateColumns="False" Name="rgvData" ItemsSource="{Binding Data}">
<telerik:RadGridView.Columns>
<telerik:GridViewColumn Header="Department">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<telerik:RadComboBox
ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}},Path=DataContext.Departments}"
SelectedValue="{Binding DEP_LINK,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="LINK"
DisplayMemberPath="TITLE">
</telerik:RadComboBox>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
データは DATA の ObservableCollection です。Departments は DEPARTMENTS の ObservableCollection です。どちらのクラスも SQL Server のエンティティです。
ここで、DATA クラスの IsDepartmentUsed プロパティに基づいてコンボボックスに色を付けたいと思います。そのためのスタイルは次のとおりです。
<telerik:RadComboBox.Style>
<Style TargetType="{x:Type telerik:RadComboBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsDepartmentUsed}" Value="False">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsDepartmentUsed}" Value="True">
<Setter Property="Background" Value="Transparent"/>
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadComboBox.Style>
ウィンドウを開いたばかりのときは問題なく動作します。しかし、コンボボックスの値を変更しても、色は変わりません!
IsDepartmentUsed プロパティは次のようになります。
public partial class DATA
{
public bool IsDepartmentUsed
{
get
{
if (this.DEPARTMENTS.ISUSED != null)
{
return Convert.ToBoolean(this.DEPARTMENTS.ISUSED);
}
return false;
}
}
}