嗯,我想知道如何將布爾屬性綁定到組合框。組合框將是一個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. mvvm:我應該如何將布爾值綁定到組合框
- 3. 如何將布爾值綁定到組合框
- 4. WPF綁定到組合框
- 5. 綁定到WPF組合框
- 6. WPF綁定到組合框
- 7. 如何綁定到WPF組合框?
- 8. 將DataGridViewCheckBoxColumn綁定到布爾值數組
- 9. 將組合框綁定到XML(wpf)
- 10. 將組合框綁定到ArrayList WPF C#
- 11. 將SelectedValue綁定到WPF組合框
- 12. 將observerbaleCollection綁定到wpf組合框
- 13. WPF綁定複選框到布爾?
- 14. 如何將組合框綁定到WPF中的多語言值集合?
- 15. 如何將布爾值綁定到checkboxcolumn datagrid WPF
- 16. WPF綁定到DataGridTemplateColumn中的組合框
- 17. 綁定WPF組合框並將其值顯示到文本框
- 18. 在WPF中,如何將組合框綁定到TabControl項目?
- 19. wpf中的datagrid綁定布爾值
- 20. 將WPF組合框子菜單項綁定到組合框selecteditem
- 21. 將組合框綁定到組合框
- 22. 將組合框綁定到組合框
- 23. WPF綁定的ObservableCollection到組合框
- 24. 如何將dataSource綁定到組合框?
- 25. WPF:如何綁定對象組合框
- 26. 將組合框SelectedItem綁定到DataContext值
- 27. 將值綁定到組合框動態
- 28. 如何將組合框綁定到工具提示wpf
- 29. 如何將複選框綁定到Play中的布爾值!框架
- 30. 複選框綁定到布爾值twoway
啊這很酷感謝隊友我是一個新的wpf – user434547 2010-12-02 13:27:54
如果它適合你,你可以標記爲答案。 :) – Botz3000 2010-12-02 13:54:26