在WP 8日历应用程序中,有一个“待办事项列表”部分,如下所示。很明显,他们在这里使用了Pivot控件。
但是,当我们点击“选择”按钮时,我们会看到一个新屏幕,其中包含可以检查以执行“删除”活动的项目列表。
当用户点击“选择”按钮时到底发生了什么?
OR
我想在我的应用中实现相同的行为。提前致谢。
答案 0 :(得分:2)
@IvanCrojachKaračić给出了一个很好的答案。
如果您想在运行时动态更改应用栏按钮,可以执行以下操作:
<phone:PhoneApplicationPage.Resources>
<shell:ApplicationBar x:Key="appbar1"
IsVisible="True">
<shell:ApplicationBarIconButton x:Name="abMain1"
IconUri="/icons/appbar.favs.addto.rest.png"
Text="blabla1" />
</shell:ApplicationBar>
<shell:ApplicationBar x:Key="appbar2"
IsVisible="True">
<shell:ApplicationBarIconButton x:Name="abMain2"
IconUri="/icons/appbar.favs.addto.rest.png"
Text="blabla2" />
<shell:ApplicationBarIconButton x:Name="abMain3"
IconUri="/icons/appbar.cancel.rest.png"
Text="blabla3" />
</shell:ApplicationBar>
</phone:PhoneApplicationPage.Resources>
然后从代码中更改它:
ApplicationBar = (Microsoft.Phone.Shell.ApplicationBar) Resources["appbar1"];
和
ApplicationBar = (Microsoft.Phone.Shell.ApplicationBar) Resources["appbar2"];
您可以使用大量不同的AppBars
。
希望能帮到你。
答案 1 :(得分:1)
我会做的就是拥有这样的东西
<StackPanle>
<Checkbox Visibility={Binding SomeProperty} IsChecked={Binding SomethingElse}/>
<Label Content={Binding SomeOtherProperty}/>
</StackPanel>
点击按钮,您只需将SomeProperty从Visibility.Visible
切换为Visibility.Collapsed
就可以了。如果为任何项目检查了属性SomethingElse
,您只需启用其他按钮,例如Delete
,Move
,Foo
编辑: 我认为没有理由不能在运行时更改可见性。只是有明确定义的标准,可以改变视图模型中的可见性属性。
要更改底部的图标,您需要执行类似的操作
public partial class YourView
{
private ApplicationBarIconButton _icon;
public YourView()
{
_icon = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
}
public void Foo()
{
if (SomeSavedState)
{
_icon.IconUri = new Uri("somePicture.png", UriKind.Relative);
_icon.Text = "Delete";
}
else
{
_icon.IconUri = new Uri("someOtherPicture.png", UriKind.Relative);
_icon.Text = "Select";
}
}
}
答案 2 :(得分:0)
只使用LongListMultiSelector并将属性IsSelectionEnabled设置为true 它是一个工具包元素