为什么我的 ApplicationBarIconButton 为空?
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" x:Name="appBar">
<shell:ApplicationBarIconButton x:Name="appbarSave"
IconUri="/Icons/appbar.save.rest.png Text="Save" IsEnabled="False"
Click="appbarSave_Click" />
</shell:Application Bar>
</phone:PhoneApplicationPage.ApplicationBar>
appBarSave对象为null,并尝试此操作:
Initialize Component();
appbarSave.IsEnabled = true;
导致NullReferenceException。对象工作的唯一位置是click事件(如果我启用它):
private void appbarSave_Click(object sender, EventArgs e)
{
ApplicationBarIconButton button = (ApplicationBarIconButton)sender;
button.IsEnabled = false;
}
我真的希望能够将保存按钮启动为禁用并稍后启用它。
答案 0 :(得分:18)
我记得之前遇到过这个问题:有一个解释here。一个简单的解决方法是在代码隐藏而不是xaml(例如here)中实例化它。
private ApplicationBarIconButton SaveEdit;
private void InitAppBar()
{
ApplicationBar appBar = new ApplicationBar();
SaveEdit = new ApplicationBarIconButton(new Uri("images/appbar.check.rest.png", UriKind.Relative));
SaveEdit.Click += new EventHandler(OnClick_Check);
SaveEdit.Text = Strings.Save_button;
appBar.Buttons.Add(SaveEdit);
ApplicationBarIconButton CancelEdit = new ApplicationBarIconButton(new Uri("images/appbar.close.rest.png", UriKind.Relative));
CancelEdit.Click += new EventHandler(OnClick_Cancel);
CancelEdit.Text = Strings.Cancel_button;
appBar.Buttons.Add(CancelEdit);
ApplicationBar = appBar;
}
答案 1 :(得分:17)
试试这个
Microsoft.Phone.Shell.ApplicationBarIconButton btn = ApplicationBar.Buttons[0] as Microsoft.Phone.Shell.ApplicationBarIconButton;
btn.IsEnabled = false;
答案 2 :(得分:1)
我使用可绑定的应用栏控件from here下载链接位于文章的底部。
让生活变得更轻松,让您不必将代码置于代码中。
答案 3 :(得分:1)
我今天犯了这个错误,x:名字被忽略了。
ApplicationBar已经是页面的一部分,无论您是否在XAML中创建它。无需创建新的。只需在代码隐藏文件中使用ApplicationBar属性即可。
Initialize Component();
ApplicationBar.IsEnabled = true;
答案 4 :(得分:0)
我这样做,更改图标的示例
ApplicationBarIconButton btn = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
btn.IconUri = new Uri("/images/play.png", UriKind.Relative);