影响网站权重,企业网站建设套餐 网络服务,手机ui界面设计,富阳建设局网站工业控制中#xff0c;经常会需要把一个bool 型输入信号的状态显示在面板上#xff0c;使用wpf 绑定的办法#xff0c;可简洁实现#xff1a; 实现步骤#xff1a;
1#xff0c;定义类#xff1a;
using System;
using System.Collections.Generic;
using System.Com…工业控制中经常会需要把一个bool 型输入信号的状态显示在面板上使用wpf 绑定的办法可简洁实现 实现步骤
1定义类
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;namespace WpfAppBoolBinding
{public class MainViewModel : INotifyPropertyChanged{private bool _myProperty;public bool MyProperty{get { return _myProperty; }set{if (_myProperty ! value){_myProperty value;OnPropertyChanged();}}}public event PropertyChangedEventHandler PropertyChanged;protected virtual void OnPropertyChanged([CallerMemberName] string propertyName ){if (this.PropertyChanged ! null){this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));}}}public class TestViewModel{public MainViewModel MainView { get; set; }public int couter { get; set; }}
}2定义bool 类型转换器
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;namespace WpfAppBoolBinding
{[ValueConversion(typeof(bool), typeof(Brush))]public class BooleanToBrushConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){return (bool)value ? Brushes.Green : Brushes.Red;}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){throw new NotImplementedException();}}}3xml 实现
Window x:ClassWpfAppBoolBinding.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:WpfAppBoolBinding mc:IgnorabledTitleMainWindow Height450 Width800Window.Resourceslocal:BooleanToBrushConverter x:KeyBooleanToBrushConverter//Window.ResourcesGridStackPanel HorizontalAlignmentCenter VerticalAlignmentCenterEllipse Width50 Height50 Fill{Binding MainView.MyProperty, Converter{StaticResource BooleanToBrushConverter}} Margin10,30/Button Content变换颜色 Width60 Height30 ClickButton_Click Margin10,30//StackPanel/Grid
/Window4进行Datacontex 绑定
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace WpfAppBoolBinding
{/// summary/// MainWindow.xaml 的交互逻辑/// /summarypublic partial class MainWindow : Window{TestViewModel testViewModel new TestViewModel();public MainWindow(){InitializeComponent();testViewModel.MainView new MainViewModel();DataContext testViewModel;}private void Button_Click(object sender, RoutedEventArgs e){testViewModel.MainView.MyProperty !testViewModel.MainView.MyProperty;}}
}