0
我有列表框,裏面有複選框,複選框內有一個文本框。 ListBox的ItemSource綁定在View Model中。我正在嘗試調用selectionchanged事件,但它並未解僱。列表框內的複選框沒有觸發WP7中的selectedchanged事件
所以我採取了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屬性。
感謝您的回答。但是當用戶選中複選框時,我想要列表框中的項目。選中的事件不會在列表框中提供我的項目。如果我可以訂閱selectionchanged事件,用戶選中/取消選中複選框或somwhow,是否可以讓我知道是否可以獲取選定的項目。 – 2012-07-24 06:36:09
您應該使用觸發Checked事件的CheckBox的DataContext屬性。我編輯了我的答案,告訴你如何做到這一點。 – 2012-07-24 07:15:07