嗯,我想知道如何将布尔属性绑定到组合框。组合框将是一个yes/no组合框。如何将布尔值绑定到wpf中的组合框
6
A
回答
14
您可以使用ValueConverter将布尔值转换为ComboBox索引并返回。像这样:
public class BoolToIndexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((bool)value == true) ? 0 : 1;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((int)value == 0) ? true : false;
}
}
}
假设是在索引0和否在索引1.然后,你必须使用该转换器绑定到SelectedIndex属性。对于这一点,你宣布你的转换器在你的资源部分:
<Window.Resources>
<local:BoolToIndexConverter x:Key="boolToIndexConverter" />
</Window.Resources>
然后你用它在你的绑定:
<ComboBox SelectedIndex="{Binding YourBooleanProperty, Converter={StaticResource boolToIndexConverter}}"/>
11
首先解决方案是一个复选框,因为更换你的“是/否”组合框,好吧,复选框存在的原因。
第二种解决方案是使用true和false对象填充组合框,然后将ComboBox的“SelectedItem”绑定到布尔属性。
4
我发现自己在过去使用ComboBox项目的IsSelected属性。这个方法完全在xaml中。
<ComboBox>
<ComboBoxItem Content="No" />
<ComboBoxItem Content="Yes" IsSelected="{Binding YourBooleanProperty, Mode=OneWayToSource}" />
</ComboBox>
1
下面是一个例子(替换启用/是/否禁用):
<ComboBox SelectedValue="{Binding IsEnabled}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={x:Static converters:EnabledDisabledToBooleanConverter.Instance}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.Items>
<system:Boolean>True</system:Boolean>
<system:Boolean>False</system:Boolean>
</ComboBox.Items>
</ComboBox>
这里是转换器:
public class EnabledDisabledToBooleanConverter : IValueConverter
{
private const string EnabledText = "Enabled";
private const string DisabledText = "Disabled";
public static readonly EnabledDisabledToBooleanConverter Instance = new EnabledDisabledToBooleanConverter();
private EnabledDisabledToBooleanConverter()
{
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Equals(true, value)
? EnabledText
: DisabledText;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
//Actually won't be used, but in case you need that
return Equals(value, EnabledText);
}
}
而且不需要用指数来打。
相关问题
- 1. 如何将布尔值绑定到组合框
- 2. WPF绑定到组合框
- 3. 绑定到WPF组合框
- 4. 将DataGridViewCheckBoxColumn绑定到布尔值数组
- 5. 将observerbaleCollection绑定到wpf组合框
- 6. 将组合框绑定到XML(wpf)
- 7. 将SelectedValue绑定到WPF组合框
- 8. 将组合框绑定到ArrayList WPF C#
- 9. WPF绑定复选框到布尔?
- 10. 如何将布尔值绑定到checkboxcolumn datagrid WPF
- 11. WPF绑定到DataGridTemplateColumn中的组合框
- 12. 绑定WPF组合框并将其值显示到文本框
- 13. wpf中的datagrid绑定布尔值
- 14. 将组合框绑定到组合框
- 15. 将值绑定到组合框动态
- 16. 如何将复选框绑定到Play中的布尔值!框架
- 17. 复选框绑定到布尔值twoway
- 18. wpf绑定组合框selectedvaluepath
- 19. WPF DataGrid组合框绑定
- 20. WPF组合框Mvvm绑定
- 21. WPF组合框SelectedItem绑定
- 22. WPF组合框绑定
- 23. WPF组合框绑定
- 24. WPF-组合框绑定
- 25. 将ObservableCollection绑定到WPF中的组合框中
- 26. 将枚举数据绑定到WPF + MVVM中的组合框中
- 27. 与组合框将DataTable绑定在WPF
- 28. WPF XML数据绑定到组合框
- 29. WPF数据绑定到组合框
- 30. 数据绑定到组合框在WPF
啊这很酷感谢队友我是一个新的wpf – user434547 2010-12-02 13:27:54
如果它适合你,你可以标记为答案。 :) – Botz3000 2010-12-02 13:54:26