覆盖Custom Control DualButton的IsEnabled属性以设置Visibility

时间:2012-05-29 05:08:30

标签: wpf xaml button

我正在研究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>

它的2个依赖属性'LeftButtonCommand'和'RightButtonCommand'绑定两个不同的ICommands。 我想将此按钮的可见性设置为LeftButtonCommand的CanExecute,以便当LeftButtonCommandCanExecute()返回true时,该时间仅按钮变为可见。 我使用了dependancyProperty'IsEnabled',我还需要做些什么呢

1 个答案:

答案 0 :(得分:1)

我知道现在已经很晚了,但可能会帮助别人......

  1. 在DataContext中,创建一个返回

    IsVisible属性
    StandardModeConnectCommand.CanExecute()
    
  2. 在您的窗口或用户控件中,添加资源

      <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
      </Window.Resources>
    
  3. 在双重按钮中,在命令之后或之前,添加:

       Visibility="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
    
  4. 最后,在CanEecute的返回值可能发生变化的地方,添加datacontext a

    NotifyPropertyChanged(nameof(IsVIsible));
    
  5. 你应该跟这个有关。