无法访问父级的数据上下文

编程入门 行业动态 更新时间:2024-10-08 20:33:16
本文介绍了无法访问父级的数据上下文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

基本上我拥有的是带有ContextMenu的ListBox

Basically what i have is a ListBox with ContextMenu

<ListBox Margin="2,0,0,0" Grid.Row="1" ItemsSource="{Binding MyCollection}"> <ListBox.ItemTemplate> <DataTemplate> <Button Style="{StaticResource NoVisualButton }" Tag="{Binding ID}" Width="430" toolkit:TiltEffect.IsTiltEnabled="True" Margin="0,0,0,12" Click="OnSelectWorkOutItemClick"> <StackPanel> <toolkit:ContextMenuService.ContextMenu> <toolkit:ContextMenu> <toolkit:MenuItem Header="delete" Tag="{Binding ID}" Click="onContextMenuDeleteItemClick" IsEnabled="{Binding IsDeleteOptionEnable, ElementName=LayoutRoot}"/> <toolkit:MenuItem Header="edit" Tag="{Binding ID}" Click="onContextMenuItemEditClick" /> </toolkit:ContextMenu> </toolkit:ContextMenuService.ContextMenu> ... </StackPanel> </Button> </DataTemplate> </ListBox.ItemTemplate> </ListBox>

因此,如果MyCollection只有一项,则必须禁用delete MenuItem.

So if MyCollection has only one item, i have to disable delete MenuItem.

我的模型有一个属性

public bool IsDeleteOptionEnable { get { return MyCollection.Count() >= 2; } }

在页面中,我将DataContext设置为:

In the page i am setting the DataContext like:

protected override void OnNavigatedTo(NavigationEventArgs e) { if (IsDataLoaded) { this.DataContext =MyModel; } }

列表框正在填充,但是我不能禁用删除" MenuItem.我在做什么错了?

The listbox is getting populated, but i can't disable "delete" MenuItem. What am i doing wrong?

推荐答案

尝试

IsEnabled="{Binding DataContext.IsDeleteOptionEnable, ElementName=LayoutRoot}"

更多推荐

无法访问父级的数据上下文

本文发布于:2023-11-09 07:58:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1571804.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上下文   无法访问   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!