だから私はこのユーザーコントロールを持っています:
<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 であることを再確認したため、ここで何が間違っているのでしょうか?