[英]WPF Ribbon Contextual Tab Visibility binding
我发现很难找到绑定RibbonContextualTabGroup可见性的示例。 我在代码的后面有一个属性,该属性应该决定何时显示功能区选项卡,但是到目前为止,我尝试过的所有操作均无效。 我背后的代码本质上是:
public partial class MainWindow : RibbonWindow
{
public string Port { get; set; }
}
我的WPF代码摘要如下。 我正在寻找将Visibility
属性绑定到MainWindow.Port
是否为null
的解决方案。
<ribbon:RibbonWindow
...
xmlns:src="clr-namespace:MagExplorer" />
...
<ribbon:RibbonTab x:Name="COMTab"
Header="COM"
ContextualTabGroupHeader="Communications">
...
</ribbon:RibbonTab>
<ribbon:Ribbon.ContextualTabGroups>
<ribbon:RibbonContextualTabGroup Header="Communications"
Visibility="<What goes here?>" />
</ribbon:Ribbon.ContextualTabGroups>
您可以创建一个转换器IsNotNullToVisibilityConverter
使用如下的Convert方法:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is string)
{
if (!string.IsNullOrEmpty((string)value))
return Visibility.Visible;
}
else if (value != null)
{
return Visibility.Visible;
}
return Visibility.Collapsed;
}
然后将其放入您的XAML中
<Window.Resources>
<IsNotNullToVisibilityConverter x:Key="IsNotNullToVisibilityConverter" />
</Window.Resources>
...
Visibility="{Binding Path=Port, Converter={StaticResource IsNotNullToVisibilityConverter}}"
在后面的代码中:
public static readonly DependencyProperty PortProperty =
DependencyProperty.Register
("Port", typeof(String), typeof(NameOfYourClass),
new PropertyMetadata(String.Empty));
public String Port
{
get { return (String)GetValue(PortProperty); }
set { SetValue(PortProperty, value); }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.