Nun, ich habe eine gute Möglichkeit gefunden, diese Funktion bereitzustellen. Was ich tat, ist, dass in der DataTemplate der listBox ich die übergeordnete Layout aktivieren Eigenschaft mit dem booleschen Flag mit Seite als Quelle gebunden.
Schritt 1 - Geben Sie die x:Name Attribut auf der Seite. Wenn die Seite, die Sie verwenden, mit einer Basisseite erweitert wird, stellen Sie sicher, dass die Basisseite keine abstrakte Klasse ist und einen Standardkonstruktor ohne Argumente hat.
<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"
>
Schritt 2 - Verwenden Sie die Seite als Quelle für die IsEnabled-Eigenschaft der übergeordneten DataTemplate-Layoutelemente
<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>