本文介绍了无法访问父级的数据上下文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
基本上我拥有的是带有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}"更多推荐
无法访问父级的数据上下文
发布评论