所以我有这个用户控件:
<UserControl x:Class="Client.SpectrumSpace"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:my="clr-namespace:Client"
mc:Ignorable="d" d:DesignHeight="150" d:DesignWidth="350">
<Canvas>
<Rectangle Width="350" Height="150" Fill="Transparent" Stroke="White" StrokeThickness="1">
<Rectangle.ContextMenu>
<ContextMenu Name="contextMenu">
<MenuItem Name="ctxItem1" Header="AntennaName"
IsEnabled="{Binding MainWindow.availeableAntennas[0]}"/>
</ContextMenu>
</Rectangle.ContextMenu>
</Rectangle>
</Canvas>
</UserControl>
正如您所见,我试图将MainWindow.availableAntennas [0]属性绑定到MenuItem.IsEnabled属性
这是我在MainWindow类上声明数组的方式:
public bool[] availableAntennas = new bool[9];
我的问题是IsEnabled属性始终为true,是的,我再次检查availeableAntennas [0]是否为false,那么我在这里做错了什么?
答案 0 :(得分:2)
您应该使用绑定表达式的"RelativeSource"
。
干杯
答案 1 :(得分:1)
对我来说,看起来它可能是一些或所有这些: