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();
            }
        }
  • 相关阅读:
    png 图片的缩放
    数据结构>图的最短路径
    2007年7月25日在博客园的排名上升到前400名
    C# 汉字转拼音(全拼)
    修改 Linux 主机名
    C# 事件的继承
    一个实现了 IDisposable 接口的基类
    Windows 防火墙上也有端口映射功能
    网上邻居不能访问的问题
    令网站提速的7大秘方
  • 原文地址:https://www.cnblogs.com/houzf/p/15743830.html
Copyright © 2011-2022 走看看