さて、私はこの機能を提供する素晴らしい方法を見つけました。私がしたことは、listBox の DataTemplate で、ページをソースとして使用して、親レイアウトの enable プロパティをブール値フラグにバインドしたことです。
ステップ 1 - ページにx:Name属性を指定します。使用しているページがベース ページで拡張されている場合は、ベース ページが抽象クラスではなく、引数のないデフォルト コンストラクターを持っていることを確認してください。
<Page x:Class="OPMS.Views.Registration"
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"
x:Name="MainPage"
d:DesignWidth="1024"
Title="Registration"
>
ステップ 2 - Page を DataTemplate 親レイアウト アイテムの IsEnabled プロパティのソースとして使用する
<ListBox Grid.Row="2"
ItemsSource="{Binding TestGroups}"
AlternationCount="2"
Padding="0"
Margin="10,5,10,10"
>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}"
IsChecked="{Binding IsSelected}"
IsEnabled="{Binding Source={x:Reference MainPage}, Path=DataContext.BindingVariableHere}"
/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>