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();
            }
        }
  • 相关阅读:
    基于jQuery解决ios10以上版本缩放问题
    移动端h5模拟长按事件
    一篇讲SpringBoot+kafka很好的文章
    Liquibase+SpringBoot的简单使用笔记!update+rollback
    集合异同,找出新增元素和删除元素
    spring-security-结合JWT的简单demo
    IDEA SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统
    提取swagger内容到csv表格,excel可打开
    spring mvc 黑马 笔记
    手机页面图片显示高低不一致
  • 原文地址:https://www.cnblogs.com/houzf/p/15743830.html
Copyright © 2011-2022 走看看