zoukankan      html  css  js  c++  java
  • WPF RadioButton 绑定枚举

    定义枚举类型

      public enum CoordinateEnum
        {
            X=0,Y,Z,RX,RY,RZ
        }

    定义枚举转换Convert

    public class EnumConvert : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return value != null && value.Equals(parameter);
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return value != null && value.Equals(true) ? parameter : Binding.DoNothing;
            }
        }

    定义ViewModel

    public class MainViewModel : INotifyPropertyChanged
        {
            private CoordinateEnum translateAxis = CoordinateEnum.X;
    
            public event PropertyChangedEventHandler PropertyChanged;
    
            public CoordinateEnum TranslateAxis
            {
                get { return translateAxis; }
                set
                {
                    if (translateAxis != value)
                    {
                        translateAxis = value;
                        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TranslateAxis"));
                    }
                }
            }
        }

    WPF XAML定义

    <Window.Resources>
            <local:EnumConvert x:Key="convert" />
        </Window.Resources>
        <Grid>
            <StackPanel>
                <RadioButton Content="X" IsChecked="{Binding TranslateAxis, Mode=TwoWay, Converter={StaticResource convert}, ConverterParameter={x:Static local:CoordinateEnum.X}}" />
                <RadioButton Content="Y" IsChecked="{Binding TranslateAxis, Mode=TwoWay, Converter={StaticResource convert}, ConverterParameter={x:Static local:CoordinateEnum.Y}}" />
                <RadioButton Content="Z" IsChecked="{Binding TranslateAxis, Mode=TwoWay, Converter={StaticResource convert}, ConverterParameter={x:Static local:CoordinateEnum.Z}}" />
                <RadioButton Content="RX" IsChecked="{Binding TranslateAxis, Mode=TwoWay, Converter={StaticResource convert}, ConverterParameter={x:Static local:CoordinateEnum.RX}}" />
                <RadioButton Content="RY" IsChecked="{Binding TranslateAxis, Mode=TwoWay, Converter={StaticResource convert}, ConverterParameter={x:Static local:CoordinateEnum.RY}}" />
                <RadioButton Content="RZ" IsChecked="{Binding TranslateAxis, Mode=TwoWay, Converter={StaticResource convert}, ConverterParameter={x:Static local:CoordinateEnum.RZ}}" />
            </StackPanel>
        </Grid>

    设置Context

     public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                this.DataContext = new MainViewModel();
            }
        }
  • 相关阅读:
    艾伟_转载:ASP.NET缓存 狼人:
    艾伟_转载:VS 2010 和 .NET 4.0 系列之《在VS 2010中查询和导航代码》篇 狼人:
    艾伟_转载:Visual Studio DSL 入门 2 狼人:
    艾伟_转载:VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇 狼人:
    艾伟_转载:对ArrayList中的自定义类型进行搜索 狼人:
    艾伟_转载:总结字符串比较函数 狼人:
    poj 2739 Sum of Consecutive Prime Numbers
    BBIT工作感想(二)
    Zenoss4.2.3对中文事件的部分支持修改
    第五周项目一(扩展)矩形类
  • 原文地址:https://www.cnblogs.com/houzf/p/15743830.html
Copyright © 2011-2022 走看看