「MVVM Group Radio Button」に対するgehhoの回答に続いて、リスト項目が選択されたときにラジオボタンがチェックされ、リスト項目が選択されていないときにラジオボタンがチェックされないように、リスト項目にラジオボタンを追加しようとしています. Kelly は、 「RadioButton IsChecked を ListBoxItem IsSelected および ListBox IsFocused にバインドする」という質問に対して、私が必要とすることを行うべきだと思われる素晴らしい回答を持っています。ただし、Kelly の XAML の単純な転置は機能しません。ラジオ ボタンはオフのままです。ここに私の MainWindow.xaml の全体があります
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.SampleDataSource"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="RadioButton.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<SampleData:SampleDataSource x:Key="SampleDataSource" d:IsDataSource="True"/>
<ControlTemplate x:Key="LBItemControlTemplate" TargetType="{x:Type ListBoxItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock TextWrapping="Wrap" Text="{Binding Property1}" Grid.Column="1"/>
<RadioButton x:Name="rbIsSelected" IsChecked="False" IsEnabled="False"/>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
<Condition Property="Selector.IsSelectionActive" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="IsChecked" TargetName="rbIsSelected" Value="True"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<DataTemplate x:Key="ListBoxItemTemplate">
<ListBoxItem Template="{StaticResource LBItemControlTemplate}"/>
</DataTemplate>
</Window.Resources>
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}">
<ListBox ItemsSource="{Binding Collection}" ItemTemplate="{DynamicResource ListBoxItemTemplate}" SelectionMode="Single"/>
</Grid>
</Window>
これがうまくいかない理由を誰かが見て、修正または別のアプローチを提案できますか?