我有列表框,里面有复选框,在复选框中有一个文本框。ListBox 的 ItemSource 绑定在 View Model 中。我正在尝试调用 selectionchanged 事件,但它没有触发。
因此,我采用了 ManipulationCompleted 事件,该事件在我选中复选框时触发。但我没有在这次活动中选择项目。但奇怪的是,如果我在列表框中的复选框内使用文本框,则不会触发 selectionchanged 事件。你能帮我解释一下为什么它不起作用。下面是相同的 XAML。
<ListBox x:Name="allcontacts" HorizontalAlignment="Stretch"
Margin="0,5,-12,0" Width="800" Grid.Row="1"
SelectionChanged="allcontacts_SelectionChanged"
ItemsSource="{Binding ContactsList,Mode=TwoWay}"
ManipulationCompleted="contacts_ManipulationCompleted">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="chkGroup"
IsChecked="{Binding IsChecked,Mode=TwoWay}"
VerticalAlignment="Top">
<StackPanel Orientation="Horizontal">
<Image x:Name="imgFriend"
Source="{Binding ImageUri}"
Height="30"
Width="30"
Margin="0 0 0 0"/>
<TextBlock x:Name="txtfrdName"
Text="{Binding Name,Mode=TwoWay}"/>
</StackPanel>
</CheckBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ContactsList 是 Friend 类的可观察集合,friend 类包含绑定到 CheckBox 和 Textbox 的 IsChecked 和 Name 属性。