WP8待办事项列表数据模板

时间:2013-04-12 07:47:49

标签: xaml windows-phone-8 windows-phone

在WP 8日历应用程序中,有一个“待办事项列表”部分,如下所示。很明显,他们在这里使用了Pivot控件。

enter image description here

但是,当我们点击“选择”按钮时,我们会看到一个新屏幕,其中包含可以检查以执行“删除”活动的项目列表。

enter image description here

当用户点击“选择”按钮时到底发生了什么?

  1. 用户是否导航到新页面(图2)
  2. OR

    1. 是否会禁用其他两个pivotitems(day,agenda)并更新UI以反映可以检查以执行“删除”活动的项目列表。
    2. 我想在我的应用中实现相同的行为。提前致谢。

3 个答案:

答案 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,您只需启用其他按钮,例如DeleteMoveFoo

编辑: 我认为没有理由不能在运行时更改可见性。只是有明确定义的标准,可以改变视图模型中的可见性属性。

要更改底部的图标,您需要执行类似的操作

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 它是一个工具包元素