簡単な質問: バインドされたコマンド .CanExecute が false を返す場合、ハイパーリンクを非表示にするにはどうすればよいですか?
xaml:
<TextBlock>
<Hyperlink Command="{Binding IncludesCanExecuteCommand}">Link text</Hyperlink>
</TextBlock>
コード:
...
private ICommand _includesCanExecuteCommand;
....
_includesCanExecuteCommand = new RelayCommand(ExecuteTheCommand, CanExecuteTheCommand);
....
public ICommand IncludesCanExecuteCommand
{
get
{
return _includesCanExecuteCommand;
}
}
....
public bool CanExecuteTheCommand()
{
return BooleanResult();
}
public void ExecuteTheCommand()
{
DoSomeWork();
}
CanExecute() 関数が false を返したときにリンクが折りたたまれるように、Textblock/Hyperlink (または必要に応じて実行) のスタイルを設定するにはどうすればよいですか? 私はもう試した:
<Hyperlink.Style>
<Style TargetType="{x:Type Hyperlink}" BasedOn="{StaticResource DefaultHyperlinkStyle}">
<Setter Property="TextBlock.Visibility" Value="Visible" />
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextBlock.Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
</Hyperlink.Style>
また、スタイルをテキストブロック (ハイパーリンクに到達できません) とハイパーリンク内の実行 (可視性プロパティなし) に配置しようとしました。
すべてのアイデアがありがたく受け取りました!