【发布时间】:2020-06-01 18:10:07
【问题描述】:
我正试图让 Caliburn Micro 进入我的项目,但在未绑定到视图的属性的上下文中,我无法理解保护方法 (Can*)(如果我得到,请原谅我我的术语错了)。
我已经改编 Tim Corey's example 来添加这个 sn-p:
private bool _connected;
public bool Connected
{
get { return _connected; }
set { _connected = value; NotifyOfPropertyChange(() => Connected); }
}
public bool CanSayHello(bool connected)
{
return connected;
}
public void SayHello(bool connected)
{
Console.WriteLine("Hello!");
}
public bool CanClearText(string firstName, string lastName)
{
if (String.IsNullOrWhiteSpace(firstName) && string.IsNullOrWhiteSpace(lastName))
{
Connected = false;
return false;
}
else
{
Connected = true;
return true;
}
}
而相关的xaml是:
<!-- Row 4 -->
<Button x:Name="ClearText" Grid.Row="4" Grid.Column="1">Clear Names</Button>
<Button x:Name="SayHello" Grid.Row="4" Grid.Column="2">Say Hello</Button>
SayHello 按钮从未启用(即使它看起来应该与CanClearText 具有相同的状态)。目的是使用Connected 作为中介属性;在我正在组装的应用程序中,这个想法是 Connected 实际上是由外部消息设置的(来自模型 - 未连接到视图)。
This question 稍微了解了一下,但我想避免显式调用 NotifyOfPropertyChange(() => CanSayHello); 并让 Caliburn Micro 框架为我完成工作。我对此很陌生,我敢肯定我缺少一些简单的东西——感谢您的帮助。
【问题讨论】:
标签: caliburn.micro