Wpf 重写自定义控件DualButton的IsEnabled属性以设置可见性

Wpf 重写自定义控件DualButton的IsEnabled属性以设置可见性,wpf,xaml,button,Wpf,Xaml,Button,我正在研究WPF,对XAML自定义创建的控件知之甚少。 我有一个自定义控件名“DualButton”,如下所示: <Controls:DualButton x:Name="StandardConferenceCancelButton" Width="90" Height="25"

我正在研究WPF,对XAML自定义创建的控件知之甚少。 我有一个自定义控件名“DualButton”,如下所示:

<Controls:DualButton x:Name="StandardConferenceCancelButton"
                                             Width="90"
                                             Height="25"
                                             Margin="2"
                                             LeftButtonCommand="{Binding StandardModeConnectCommand}"
                                             RightButtonCommand="{Binding ConferenceCancelCommand}"
                                             >
                            <AccessText HorizontalAlignment="Center" Text="{x:Static I18N:TelephonyRegionViewRes.Standard}" />
                        </Controls:DualButton>

它的两个依赖性属性“LeftButtonCommand”和“RightButtonCommand”绑定两个不同的ICommand。 我想将此按钮的可见性设置为LeftButtonCommand的CanExecute,这样当LeftButtonCommandCanExecute()返回true时,只有该按钮才可见。
我对DependencyProperty“IsEnabled”做了进一步的了解,我知道现在已经很晚了,但可能会帮助其他人

  • 在DataContext中,创建一个类似于
    IsVisible
    的属性,返回

    StandardModeConnectCommand.CanExecute()
    
  • 在窗口或用户控件中,添加资源

      <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
      </Window.Resources>
    
  • 最后,在CanEecute返回值可能更改的地方,在datacontext中添加

    NotifyPropertyChanged(nameof(IsVIsible));
    

  • 您应该已经注意到了这一点。

    如果LeftButtonDownCommand的CanExecute方法返回false,您的按钮是否被禁用?否。不是。这就是我真正想要的。如果你愿意,我可以发布用于“DualButton”的模板。是的,请发布模板。问题的关键可能就在那里。
    NotifyPropertyChanged(nameof(IsVIsible));