【问题标题】:WP8 To Do list data templateWP8 待办事项列表数据模板
【发布时间】:2013-04-12 07:47:49
【问题描述】:

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

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

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

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

  1. 是否会禁用其他两个数据透视项(日期、议程)并更新 UI 以反映可以检查以执行“删除”活动的项目列表。

我想在我的应用中实现相同的行为。提前致谢。

【问题讨论】:

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


    【解决方案1】:

    @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。 希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我会做的就是拥有这样的东西

      <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";
              }
          }
      }
      

      【讨论】:

      • 这是有道理的。但是,是否可以在运行时更改数据透视项目的可见性并动态更改应用栏按钮?知道 WP 团队到底做了什么吗?
      【解决方案3】:

      只需使用 LongListMultiSelector 并将属性 IsSelectionEnabled 设置为 true 它是一个工具包元素

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-04
        相关资源
        最近更新 更多