Wpf 登录视图-登录按钮最初不会根据CanLogin值禁用,直到我们第一次单击它。
我刚开始研究Caliburn Micro 2.0.0,并开始使用一个简单的登录页面实现。 我的页面xaml如下所示Wpf 登录视图-登录按钮最初不会根据CanLogin值禁用,直到我们第一次单击它。,wpf,caliburn.micro,Wpf,Caliburn.micro,我刚开始研究Caliburn Micro 2.0.0,并开始使用一个简单的登录页面实现。 我的页面xaml如下所示 <StackPanel Grid.Column="1" Grid.Row="1"> <StackPanel Orientation="Horizontal" Margin="2"> <TextBlock Text="Login name"
<StackPanel Grid.Column="1" Grid.Row="1">
<StackPanel Orientation="Horizontal"
Margin="2">
<TextBlock Text="Login name"
Width="100"/>
<TextBox x:Name="LoginName"
Width="200" />
</StackPanel>
<StackPanel Orientation="Horizontal"
Margin="2">
<TextBlock Text="Password"
Width="100"/>
<TextBox x:Name="Password"
Width="200" />
</StackPanel>
<Button x:Name="Login"
Content="Submit"
Width="100"
Margin="2"/>
</StackPanel>
public class LoginViewModel : PropertyChangedBase
{
private string loginName;
public string LoginName
{
get
{
return loginName;
}
set
{
loginName = value;
NotifyOfPropertyChange(() => LoginName);
NotifyOfPropertyChange(() => CanLogin);
}
}
private string password;
public string Password
{
get { return password; }
set
{
password = value;
NotifyOfPropertyChange(() => Password);
NotifyOfPropertyChange(() => CanLogin);
}
}
public bool CanLogin
{
get
{
return !string.IsNullOrWhiteSpace(LoginName) && !string.IsNullOrWhiteSpace(Password);
}
}
public void Login()
{
}
}
我不确定这里面是否有错误。
但是,在我第一次单击登录之前,登录按钮始终处于启用状态
有趣的是,当我使用calibur 1.5时,它工作得非常完美
请帮我解决这个问题。我见过类似的情况,但请告诉我。。。按钮实际上是禁用的,但看起来只是启用了,还是实际上启用了,如果单击它,它会工作?当窗体最初加载时,按钮应该在其实际启用的位置最初禁用。当用户单击时,它正在调用其绑定操作,其中我现在需要在Login方法中检查CanLogin,如public void Login{if CanLogin{}从那时起,它就可以正常工作了。调试时是否在表单加载时调用了CanLogin属性getter?否。。。。。。。。。。我想知道为什么。。。。当我们第一次单击按钮时,它将首先被调用…非常奇怪,您的LoginView模型在哪里实例化?它是否位于继承自导体或屏幕的另一个ViewModel中?