且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Bind Enum to Combobox.SelectedIndex

更新时间:2022-09-21 17:39:43

原文:Bind Enum to Combobox.SelectedIndex

Do you mean that you want to bind a variable (not a property) to ComboBox.SelectedIndex? If so, I think that the better method to do this is bind a property to ComboBox.SelectedItem. The following example shows how to bind a property to the ComboBox.SelectedItem. If you want to have more functionality from the binding, you should have the property is a dependency property.

 

Code Snippet

 

Bind Enum to Combobox.SelectedIndex<Window x:Class="LearningSolution.MainWindow"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexxmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexxmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexxmlns:system
="clr-namespace:System;assembly=mscorlib"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexxmlns:local
="clr-namespace:LearningSolution"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexName
="TheWindow">
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<Window.Resources>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<ObjectDataProvider x:Key="EnumValues"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexMethodName
="GetValues"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexObjectType
="{x:Type system:Enum}">
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<ObjectDataProvider.MethodParameters>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<x:Type TypeName="local:LevelEnum" />
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
</ObjectDataProvider.MethodParameters>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
</ObjectDataProvider>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<DataTemplate x:Key="EnumValueTemplate">
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<TextBlock Text="{Binding}"/>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
</DataTemplate>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
</Window.Resources>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<StackPanel>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<ComboBox ItemsSource="{Binding Source={StaticResource EnumValues}}"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexItemTemplate
="{StaticResource EnumValueTemplate}"
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexSelectedItem
="{Binding ElementName=TheWindow, Path=TheLevel, Mode=OneWayToSource}"/>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
<Button Click="Button_Click">Watch</Button>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
</StackPanel>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex
</Window>
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexpublic partial class MainWindow : Window
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex{
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexpublic LevelEnum TheLevel { get; set; }
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexprivate void Button_Click(object sender, RoutedEventArgs e)
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex{
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexMessageBox.Show(this.TheLevel.ToString());
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex}
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex}
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndexpublic enum LevelEnum { None = 0, First = 1, Second = 2, Third = 3 }
Bind Enum to Combobox.SelectedIndex
Bind Enum to Combobox.SelectedIndex 
Bind Enum to Combobox.SelectedIndex

 

 

 

For more information about binding and dependency property, you could refer to the following links.

http://msdn2.microsoft.com/en-us/library/ms753192.aspx

http://msdn2.microsoft.com/en-us/library/ms750612.aspx