首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上下文菜单MenuItem单击数据上下文?

上下文菜单MenuItem单击数据上下文?
EN

Stack Overflow用户
提问于 2015-01-12 20:32:58
回答 1查看 174关注 0票数 1

我有一个对象集合,我已经为其创建了一个ScrollViewer来显示。对于每个对象,数据显示在一个网格中,我在其中添加了一个上下文菜单,以便当用户右击网格时,它们可以更改对象的属性。我不知道如何知道哪个对象已被正确单击。

在下面的代码中,当到达MenuItem "TurnOff“的回调时,我如何知道哪个”TurnOff“是正确单击的?

代码语言:javascript
复制
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.ColumnSpan="2" Margin="0,0,0,15">
        <ItemsControl Name="icVoltageMonitorsPanel" ItemsSource="{Binding AppMonitors.VoltageMonitors, Mode=TwoWay}" Grid.ColumnSpan="2" Padding="0" Margin="0"  Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}">
            <ItemsControl.ItemTemplate>
                <DataTemplate DataType="local:VoltageMonitor">
                    <Grid Height="130" Name="grdIndicator" Width="200" MinWidth="200" MinHeight="130">
                        <Grid.ContextMenu>
                            <ContextMenu>
                                <MenuItem Header="Edit Format..." />
                                <MenuItem Header="Turn off" Click="MenuItem_Click" DataContext=""/>
                            </ContextMenu>
                        </Grid.ContextMenu>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30*" />
                            <RowDefinition Height="25*" />
                            <RowDefinition Height="25*" />
                            <RowDefinition Height="25*" />
                            <RowDefinition Height="25*" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="133*" />
                            <ColumnDefinition Width="67*" />
                        </Grid.ColumnDefinitions>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 20:46:01

假设您在视图模型中定义了一个ICommand,您可以这样做:

代码语言:javascript
复制
<ItemsControl ...>
      <ItemsControl.ItemTemplate>
          <DataTemplate DataType="local:VoltageMonitor">
              <Grid ..>
                  <Grid.ContextMenu>
                      <ContextMenu>
                          <MenuItem Header="Edit Format..." />
                          <MenuItem Header="Turn off" 
                              CommandParameter="{Binding}"
                              Command="{Binding RelativeSource=
                                   {RelativeSource Mode=FindAncestor, 
                                      AncestorType={x:Type ItemsControl}}, 
                                    Path=DataContext.TurnOffCommand}"/>
                      </ContextMenu>
                  </Grid.ContextMenu>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27910288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档