Bind Enum to Combobox.SelectedIndex

原文: 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

 

< Window  x:Class ="LearningSolution.MainWindow"

xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:system
="clr-namespace:System;assembly=mscorlib"

xmlns:local
="clr-namespace:LearningSolution"

Name
="TheWindow" >

< Window .Resources >

< ObjectDataProvider  x:Key ="EnumValues"

MethodName
="GetValues"

ObjectType
="{x:Type system:Enum}" >

< ObjectDataProvider .MethodParameters >

< x:Type  TypeName ="local:LevelEnum"   />

</ ObjectDataProvider.MethodParameters >

</ ObjectDataProvider >

< DataTemplate  x:Key ="EnumValueTemplate" >

< TextBlock  Text ="{Binding}" />

</ DataTemplate >

</ Window.Resources >

< StackPanel >

< ComboBox  ItemsSource ="{Binding Source={StaticResource EnumValues}}"

ItemTemplate
="{StaticResource EnumValueTemplate}"

SelectedItem
="{Binding ElementName=TheWindow, Path=TheLevel, Mode=OneWayToSource}" />

< Button  Click ="Button_Click" > Watch </ Button >

</ StackPanel >

</ Window >

public partial class MainWindow : Window

{

public LevelEnum TheLevel { get; set; }

private void Button_Click(object sender, RoutedEventArgs e)

{

MessageBox.Show(this.TheLevel.ToString());

}

}

public enum LevelEnum { None = 0, First = 1, Second = 2, Third = 3 }

 

 

 

 

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

posted on 2018-07-11 01:18 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/9292367.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值