根据listviewitem点击更新appbar上下文

时间:2013-12-11 13:13:33

标签: c# xaml visual-studio-2012 windows-8 winrt-xaml

如何更改应用栏中按钮的上下文,具体取决于屏幕上点击的内容?

在我的场景中,我为不同的对象(如用户/项目等)提供了各种数据绑定listView,appbar包含简单的添加/删除/编辑按钮。我希望能够根据我在屏幕上点击的内容执行这些任务。

2 个答案:

答案 0 :(得分:0)

我这样做的方法是在设计时将所有上下文按钮放入应用栏。然后,我根据用户点击的项目显示或隐藏正确的那些。

具体来说,我的应用程序侦听SelectionChanged事件,然后在相应的应用栏按钮上设置Visibility属性。

答案 1 :(得分:0)

请记住,当您编写XAML应用程序时,要使用的最佳设计模式是MVVM模式,因为它非常简单。包括你的场景。

首先,您的ListView具有SelectedItem属性,只要用户更改其选择,该属性就会更新。您应该将其绑定到视图模型中的INotifyPropertyChanged属性;让我们假设它被称为Selected,并确保在设置绑定时使用Mode=TwoWay

此外,对于视图模型中的Selected,您还应该添加INotifyPropertyChanged属性,例如Button1VisibilityButton2Visibility,您将在{{1}内更新setter代码。 Selected中的按钮的可见性应分别与视图模型的AppBarButton1Visibility属性绑定。

然后,当用户更改选择时,您在Button1Visibility设置器代码中实现的逻辑将适当地设置视图模型中的Selected属性。然后,Visibility中的按钮将显示并隐藏。这有意义吗?

像这样的东西

AppBar

在上面的代码中,例如,我们在没有选择任何内容时隐藏按钮。

祝你好运!