我的页面上有一个按钮。我想在页面加载时禁用此按钮,但未禁用它。
XAML:
<Button IsEnabled="{Binding IsEnabledSaveBtn,Mode=TwoWay}" Text="Save" Command="{Binding SaveItem}" />
ViewModel:
bool _isEnabledSaveBtn = false;
public bool IsEnabledSaveBtn
{
get { return _isEnabledSaveBtn; }
set
{
_isEnabledSaveBtn = value;
OnPropertyChanged();
}
}
内部ViewModel构造函数:
public CreateDiscountViewModel(INavigation navigation)
{
Navigation = navigation;
IsEnabledSaveBtn=False;
}
我也在验证TextChange事件上的数据,并且工作正常。但是我想在页面加载时禁用此按钮。
我该如何解决?
答案 0 :(得分:0)
您需要进行以下更改:
在XAML中,您不需要双向绑定:
<Button IsEnabled="{Binding IsEnabledSaveBtn}" Text="Save" Command="{Binding SaveItem}" />
您的媒体资源应如下所示:
private bool _isEnabledSaveBtn;
public bool IsEnabledSaveBtn
{
get { return _isEnabledSaveBtn; }
set
{
_isEnabledSaveBtn = value;
OnPropertyChanged(nameof(IsEnabledSaveBtn));
}
}
然后在ViewModel构造函数中设置值:
public CreateDiscountViewModel(INavigation navigation)
{
Navigation = navigation;
IsEnabledSaveBtn = false;
}
答案 1 :(得分:0)
您的OnPropertyChanged
事件似乎有问题。
尝试以下方法,它将起作用。
按钮已启用:
bool _isEnabledSaveBtn = false;
public bool IsEnabledSaveBtn
{
get { return _isEnabledSaveBtn; }
set
{
_isEnabledSaveBtn = value;
OnPropertyChanged("IsEnabledSaveBtn");
}
}
OnPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
和您的构造器
IsEnabledSaveBtn = false;