を参照を送信:は、私はC#とWPFを使用していますが、私は以下を達成する方法が分からない、コンテキストメニューから親オブジェクトに
私はTreeViewItemsが含まれているツリービューを持っています。すべてのTreeViewItem.Headerには、アイコン、テキスト、およびContextMenuを含むスタックパネルがあります(コンテキストメニューはTreeView.Resourcesで定義されています。ユーザーがスタックパネルを右クリックするとコンテキストメニューが表示されます)。このMenuItemのClickイベントでは、カスタムダイアログが作成され、このダイアログには、そのコンテキストメニューを開いたTreeViewItemへの参照が必要です。
ここにはXAMLコードがあります。ツリービューが定義されている:
<TreeView Grid.Row="1" Margin="5, 3, 5, 3">
<TreeView.Resources>
<ContextMenu x:Key="RoomsContextMenu">
<MenuItem Header="Add Rooms" VerticalAlignment="Bottom" Click="addRom_Click">
<MenuItem.Icon>
<Image Width="20" Height="20" Source="/GroupAddressCreatorWPF;component/Images/add.png" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TreeView.Resources>
<TreeViewItem>
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal" ContextMenu="{StaticResource RoomsContextMenu}">
<Image Width="5" Height="5" Margin="3,0"
Source="/GroupAddressCreatorWPF;component/Images/red.png" />
<TextBlock Text="Main area 1" />
</StackPanel>
</TreeViewItem.Header>
</TreeViewItem>
</TreeView>
これは、カスタムダイアログを作成したメニュー項目からクリックイベントの実装である、と私はツリービューアイテムへのアクセスを必要とする場所:
private void addRom_Click(object sender, RoutedEventArgs e)
{
AddRoomsDialog roomsDialog = new AddRoomsDialog(???);
roomsDialog.Show();
}
addRom_Clickが呼び出されたときに、現在senderパラメータには何が含まれていますか? –
Clickイベントを送信するオブジェクトへの参照を推測します(この場合はMenuItem – chincheta73