私はコンテキストメニューのリストボックスを持っています。 ContextMenuItemクリックイベントハンドラでSelectedIndex(SelectedItem)プロパティの値を取得するにはどうすればよいですか?現在のイベントEdit_ClickおよびDelete_CLickでは、CarsList.SelectedIndexの値は常に-1です。ContextMenuイベントハンドラのListBox.SelectedIndex
ここにXAMLでの私のリストボックス:
<ListBox Name="CarsList" Style="{StaticResource ListBoxStyle}" Margin="26,0,26,0" Height="380" > <toolkit:ContextMenuService.ContextMenu> <toolkit:ContextMenu Name="ContextMenu" > <toolkit:MenuItem Name="Edit" Header="Edit" Click="Edit_Click"/> <toolkit:MenuItem Name="Delete" Header="Delete" Click="Delete_Click"/> </toolkit:ContextMenu> </toolkit:ContextMenuService.ContextMenu> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding CarName}" TextTrimming="WordEllipsis" Foreground="Black" FontSize="24" Width="428"/> <TextBlock Text="{Binding VIN}" TextWrapping="Wrap" Foreground="Gray" FontSize="20" Width="428"/> <TextBlock Text="{Binding Date}" TextWrapping="Wrap" Foreground="Gray" FontSize="20" Width="428"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
感謝。
ContextMenuブロックをStackPanelに移動し、ListBox.ItemsSourceの値に "Cars"などの値を割り当てました。しかし、私はコードにエラーがあります > int selectedIndex = Cars.IndexOf((送信者としてUIElement).DataContext); // System.Windows.UIElementのDataContextの定義が見つかりません 何が問題なのですか? – Lumen
申し訳ありませんが、 'DataContext'は' FrameworkElement'にあります。 'UIElement'ではなく' MenuItem'を試してみてください。それは動作するはずです – Ku6opr
ListBoxItem contextMenuListItem = CarsList.ItemContainerGenerator.ContainerFromItem(ContextMenuとしての送信者).DataContext)をListBoxItemとして; //このコードが見つかりましたが、例外NullReferenceExceptionがスローされます。私はItemTemplateのテキストボックスの値をどのように読み取ることができるのか分かりません。 – Lumen