【发布时间】:2013-09-13 14:53:20
【问题描述】:
我有这个模型:
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 类型的 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"/>
这些选项已被有效禁用(我无法选择其中任何一个),但我想使用一些绑定。有人可以解释我在这里做错了什么吗?
【问题讨论】:
-
这可能会导致相同的答案,但这是一个不同的问题,因此有更多的问题有助于更容易找到答案。
标签: c# xaml windows-8 windows-runtime