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 MVC Control向View传值
    初学MyBatis.net
    win10更新后,可以远程桌面ping也没问题,但是无法访问共享文件夹的解决方法
    我的常用自定义函数
    获取图片大小
    python获取文件路径、文件名、后缀名的实例
    Python-Selenium中chromeDriver限制图片和Javascript加载
    精华 selenium_webdriver(python)调用js脚本
    安装程序无法使用现有分区 因为它没有包含所需的空间?怎么办?
    我们无法创建新的分区 也找不到现有的分区 已解决【亲测有效】
  • 原文地址:https://www.cnblogs.com/houzf/p/15743830.html
Copyright © 2011-2022 走看看