Xaml 如何更改ContextMenu项的DataContext?

Xaml 如何更改ContextMenu项的DataContext?,xaml,contextmenu,datacontext,Xaml,Contextmenu,Datacontext,在我的XAML中,我有一个只读的ListView,右键单击ListView项时,我想提供一个单击选项,该选项将更新对象的属性,并最终更新列表视图的“我的名字”列 假设我的listView位于Primary.Xaml中。这个xaml的DataContext是ObjectInfo。 Xaml有一个listView和一个ContextMenu,如下所示: <ListView x:Name="lview" SelectedIndex="0" Width="{Binding ElementName=

在我的XAML中,我有一个只读的ListView,右键单击ListView项时,我想提供一个单击选项,该选项将更新对象的属性,并最终更新列表视图的“我的名字”列

假设我的listView位于Primary.Xaml中。这个xaml的DataContext是ObjectInfo。 Xaml有一个listView和一个ContextMenu,如下所示:

<ListView x:Name="lview" SelectedIndex="0" Width="{Binding ElementName=gridItems, Path=ActualWidth}" Height="{Binding ElementName=gridItems, Path=ActualHeight}" Style="{DynamicResource ListViewStyle}">
            <ListView.ContextMenu>
                <ContextMenu>
                    <MenuItem x:Name="mitem" Click="mitem_Click" >
                        <MenuItem.Header>
                            <Label HorizontalContentAlignment="Left" Content="My Name"/>
                        </MenuItem.Header>
                    </MenuItem>
                </ContextMenu>
            </ListView.ContextMenu>
            <ListView.View>
                <GridView ColumnHeaderContainerStyle="{StaticResource GridViewColumnHeaderStyle}">
                    <GridViewColumn Header="Id#" Width="80" DisplayMemberBinding="{Binding Id}" />
                    <GridViewColumn Header="Number#" Width="100" DisplayMemberBinding="{Binding Number}" />                 
                    <GridViewColumn Header="My Name" Width="80" DisplayMemberBinding="{Binding MyName}" />
                </GridView>
            </ListView.View>
MyName = dr.GetString("DifferentObject" + "MyName");
我像这样加载属性:

<ListView x:Name="lview" SelectedIndex="0" Width="{Binding ElementName=gridItems, Path=ActualWidth}" Height="{Binding ElementName=gridItems, Path=ActualHeight}" Style="{DynamicResource ListViewStyle}">
            <ListView.ContextMenu>
                <ContextMenu>
                    <MenuItem x:Name="mitem" Click="mitem_Click" >
                        <MenuItem.Header>
                            <Label HorizontalContentAlignment="Left" Content="My Name"/>
                        </MenuItem.Header>
                    </MenuItem>
                </ContextMenu>
            </ListView.ContextMenu>
            <ListView.View>
                <GridView ColumnHeaderContainerStyle="{StaticResource GridViewColumnHeaderStyle}">
                    <GridViewColumn Header="Id#" Width="80" DisplayMemberBinding="{Binding Id}" />
                    <GridViewColumn Header="Number#" Width="100" DisplayMemberBinding="{Binding Number}" />                 
                    <GridViewColumn Header="My Name" Width="80" DisplayMemberBinding="{Binding MyName}" />
                </GridView>
            </ListView.View>
MyName = dr.GetString("DifferentObject" + "MyName");
这意味着我必须更新“differentitobject”对象的属性,并监听Primary.Xaml中的更改

这是“DifferentitoObject”中我要更新并绑定到ContextMenu中的属性

private static readonly PropertyInfo<bool> IsMyNameProperty = RegisterValueProperty<bool>(x => x.IsMyName);
    public bool IsMyName
    {
        get { return GetProperty(IsMyNameProperty); }
        set
        {
            SetProperty(IsMyNameProperty, value);

            if (value)
            {
                SetProperty(MyNameIdProperty, UserId);
                SetProperty(MyNameProperty, Name);
            }
            else
            {
                SetProperty(MyNameIdProperty, 0);
                SetProperty(MyNameProperty, string.Empty);
            }               
        }
    }

所以!我的问题是,如何为我的ContextMenu设置不同的DataContext?

有人有机会看一下吗?有人有机会看一下吗?