今天在写代码的时候,想通过几个不同控件和属性来自动更新某一MenuItem的IsEnabled的值,刚开始使用的是DataTrigger来实现,但是无论怎么写都无法实现,最后悉心研究(思考人生)了4个小时,终于实现。

直接使用多绑定和多值转换器来绑定到IsEnabled属性上,废话不多说,Show my Code:

//先在Window.Resources中加入转换器实体
<Window.Resources>
    <convert:UserStatusConverter x:Key="userStatus"/>
</Window.Resources>
在xaml或者后台代码中使用多绑定,绑定到某控件的IsEnabled属性上;

代码略。。。请自行百度。

//最后实现一个多值转换器
using System.Windows.Data
namespace xxx
  class UserStatusConvert: IMultiValueConverters
   public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  if(xx=true)
    return ture;
  return false;
public object[] ConvertBack(object values,Type[] targetType, object parameter, System.Globalization.CultureInfo culture)
  return null;
                                    控件通用属性:
Visibility:控件是否可见:枚举类型。Visible表示可见,Collapsed不可见。
IsEnabled控件是否可用。Bool类型。
Background 背景色
FontSize 字体大小
                                    QWidget 是所有可视化组件的基类,几乎所有的GUI控件(如按钮、标签、窗口等)都继承自这个类。因此,QWidget 包含的属性和方法可以认为是通用的,它们可以被所有派生类使用。
                                    1.创建转换类,0为已读,让“阅”按钮不可用,即返回False
[code="c#"]
public class ReadOrNoReadConverter : IValueConverter
        public object Convert(object value, Type targetType, object parameter, System.Globali...
                                    我的程序有一个xaml窗口,它有一个名为"Save"的按钮和一个 textBox  . 我也有一个ViewModel用于此窗口 . 在ViewModel,我有 textBox 的 string 属性,按钮上有 IsEnabled 的 bool 属性 . 我希望只有在 textBox 内有文本时才能启用该按钮 .xaml:ViewModel properties://Property for N...
                                    <Grid Grid.Row="0">
            <Slider Name="SliderName" Grid.Row="0" VerticalAlignment="Center" 
                 Minimum="10"
                 Maximum="24"
                 Value="10" 
                 ToolTip="{Binding ElementName=Slider...
                                    <Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。
本文主要内容: 
CheckBox复选框的自定义样式,有两种不同的风格实现; 
RadioButton单选框自定义样式,有两种不同的风格实现; 
二. CheckBox自定义样式 
2.1 CheckBox基本...
                                    <TextBox x:Name="textBox1"  Width="300" FontSize="15" />
<TextBox Width="25" Height="25" Text="{Binding Path=Text,ElementName=textBox1}" />
Path=想要取的元素(控件)的值
ElementName=元素(控件)的名称(x:Name)
                                    &lt;Button Content="删除" Width="90" Name="btnDel" Margin="10, 5, 5, 5" Command="{Binding CmdDelPic}" IsEnabled="{Binding ElementName=lbImgs, Path=SelectedItems.Count}"/&gt;
参考文章:https://st
反向选择的相关要求
[ValueConversion(typeof(bool), typeof(bool))]
public class InverseBooleanConverter : IValueConverter
    #region IValueConverter Members
    public object Convert(object value, Type targetType, object parameter,
         Syste