4

这可能是一个微不足道的初学者问题,我已经找到了很多有关 Windows 和 Silverlight 应用程序的相关信息,但没有任何东西可以直接帮助我。我正在用 C# 和 XAML 编写一个 Windows Phone 8.1/WinRT 应用程序,我想以编程方式修改在 XAML 中创建的应用程序栏。例如,我只想在调试版本中包含一个按钮,在后面的代码中使用预处理器指令。

在下面的 XAML 代码中,我创建了一个带有两个按钮的 BottomAppBar。如何创建第二个按钮(AppBarAddSampleItemsButton),包括后面代码中的所有属性?

<prism:VisualStateAwarePage.BottomAppBar>
    <CommandBar >
        <CommandBar.PrimaryCommands>
            <AppBarButton x:Uid="AppBarNewItemButton"
                          Label="New item"
                          Icon="Add" Command="{Binding GoToAddItemPageCommand}" />
        </CommandBar.PrimaryCommands>
        <CommandBar.SecondaryCommands>
            <AppBarButton x:Uid="AppBarAddSampleItemsButton"
                          Label="Add sample items"
                          Command="{Binding GoToAddSampleItemssPageCommand}" />
        </CommandBar.SecondaryCommands>
    </CommandBar>
</prism:VisualStateAwarePage.BottomAppBar>
4

2 回答 2

7

这是在后面的代码中创建AppBarButton并将其添加到当前Page的BottomAppBar的示例代码:

private void AddButtonToAppBar()
{
    AppBarButton buttonToAdd = new AppBarButton { Label = "Label", Icon = new SymbolIcon(Symbol.Help) };
    buttonToAdd.Click += async (sender, e) =>  await new MessageDialog("Button clicked").ShowAsync();
    // add button to Page's BottoAppBar
    (BottomAppBar as CommandBar).PrimaryCommands.Add(buttonToAdd);
}

编辑- 至于绑定(再次从我的头顶,所以你必须检查这个)这应该可能工作:

Binding myBind = new Binding();
myBind.Path = new PropertyPath("GoToAddSampleItemssPageCommand");
myBind.Source = DataContext;
buttonToAdd.SetBinding(AppBarButton.CommandProperty, myBind);

更多关于MSDN 上的 DataBinding 的信息。

于 2014-10-07T12:44:57.680 回答
0

在对 Windows Phone 开发中心进行了一番挖掘之后,我找到了这个页面:如何为 Windows Phone 动态更改应用栏图标按钮和菜单项。希望能帮助到你!

于 2014-10-07T12:33:36.287 回答