WinRT XAML IsEnabled仅触发一次

时间:2013-08-23 13:41:10

标签: c# winrt-xaml mvvm-light

我在AppBar上有一个按钮,当ViewModel中的属性变为true时,我将其设置为启用。由于某种原因,仅在第一次显示AppBar时才检查IsEnabled绑定。我错过了什么吗?

这是我在视图中的按钮XAML(为清晰起见,省略了AppBar xaml):

<Button  Style="{StaticResource DocumentAppBarButtonStyle}" AutomationProperties.Name="Approve" 
  Command="{Binding ApproveTimesheetCommand, Mode=OneWay}" 
  IsEnabled="{Binding IsAbleToProcessTimesheet, Mode=OneWay}" />

这是我在ViewModel中的属性:

public bool IsAbleToProcessTimesheet
{
    get
    {
        return SelectedTimesheets.Count() > 0;
    }
}

在属性上设置断点显示它仅在第一次显示App Bar时调用。显示App Bar的后续调用不会触发对IsEnabled属性的检查。

每次显示AppBar时,你是否需要设置一些东西让XAML调用属性?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您必须使用SetProperty方法为 IsAbleToProcessTimesheet 定义 SET 。您可以使用 INotifyPropertyChanged

从抽象类BindableBase继承