私は Telerik コンボボックスを使用していますが、質問は標準の wpf コンボボックスに関連していると思います。コントロールは、このオブジェクトが次のように見える「TableRecord」の監視可能なコレクションにバインドされます。
public enum RecordState
{
Orginal, Added, Modified, Deleted
}
public class TableRecord<T>
{
public Guid Id { get; set; }
public string DisplayName { get; set; }
public T Record { get; set; }
public RecordState State { get; set; }
public TableRecord(Guid id, string displayName, T record, RecordState state)
{
Id = id;
DisplayName = displayName;
Record = record;
State = state;
}
}
これらの「TableRecords」は、次のように保持および公開されます。
private ObservableCollection<TableRecord<T>> _recordCollection = new ObservableCollection<TableRecord<T>>();
public ObservableCollection<TableRecord<T>> Commands
{
get
{
return _recordCollection;
}
}
私のxamlは次のようになります:
<telerik:RadComboBox ItemsSource="{Binding Commands}" DisplayMemberPath="DisplayName" SelectedValuePath="Id" Height="22" SelectedItem="{Binding SelectedCommand, Mode=TwoWay}" />
私がやりたいことは、(可能であれば) xaml を変更して、「State」値が「Deleted」に設定されているアイテムを除いて、コレクション内のすべてのアイテムを表示することです。
過去にコンテンツに基づいてテキストの色を設定するためにデータトリガーを使用したことがあるので、データトリガーを使用してこれを行うことができるかもしれないという考えがありますが、必要な方法でフィルタリングできるかどうかはわかりません。