• 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

  • 相关阅读:
    图解 Kubernetes
    如何构建可伸缩的Web应用?
    2020年软件开发趋势
    3种基础的 REST 安全机制
    为什么你应该使用 Kubernetes(k8s)
    Elasticsearch:是什么?你为什么需要他?
    你在使用什么 Redis 客户端工具?
    ZooKeeper 并不适合做注册中心
    Jmeter(三)_配置元件
    Jmeter(二)_基础元件
  • 原文地址:https://www.cnblogs.com/caoyang/p/892337.html
Copyright © 2020-2023  润新知