私はこのモデルを持っています:
public class Option : BindableBase
{
private bool _enabled;
public bool Enabled
{
get
{
return _enabled;
}
set
{
SetProperty(ref _enabled, value);
}
}
private string _value;
public string Value
{
get
{
return _value;
}
set
{
SetProperty(ref _value, value);
}
}
}
私のビューモデルでは、Options
typeのリストを取得しましたObservableCollection<Option>
。
この XAML コードを使用します。
<ComboBox Width="200"
ItemsSource="{Binding Options}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Value}"/>
<TextBlock Text="{Binding Enabled}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsEnabled" Value="{Binding Enabled}"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
Option
リストにいくつか追加します。Enabled
プロパティが設定されてtrue
いるものもあれば、設定されていないものもあります。
ただし、プロパティを持つものは でfalse
有効のままであり、ComboBox
それらを選択できます (そうすべきではありません!)。このコード行を使用する場合:
<Setter Property="IsEnabled" Value="false"/>
オプションは事実上無効になっています (どれも選択できません) が、何らかのバインディングを使用したいと考えています。誰かが私がここで間違っていることを説明できますか?