如何在Caliburn.Micro.中获得下拉选择的CanXXX行为
本文关键字:选择 行为 CanXXX Caliburn Micro | 更新日期: 2023-09-27 18:27:09
如果我有一个名为Execute的按钮,我可以编写一个方法来控制该按钮的可点击性:
public bool CanExecute()
{
return !string.IsNullOrWhiteSpace(this.SelectedCatalogName) && !string.IsNullOrWhiteSpace(this.selectedCommandName);
}
类似地,我有一个名为SelectedCommand的下拉列表,在选择另一个下拉列表之前,它应该被禁用:
private BindableCollection<string> catalogNames;
public BindableCollection<string> CatalogNames
{
get
{
return this.catalogNames;
}
}
private string selectedCatalog;
public string SelectedCatalogName
{
get
{
return this.selectedCatalog;
}
set
{
this.selectedCatalog = value;
this.NotifyOfPropertyChange(() => this.SelectedCatalogName);
}
}
// -----------------------------------------------------------------
// --> Can I do this or the equivalent?
// -----------------------------------------------------------------
public bool CanSelectCatalogName()
{
return !string.IsNullOrWhiteSpace(this.SelectedCatalogName);
}
注:以上评论中的问题。
没有内置的约定来支持这一点,但您可以只做一个简单的绑定:
<ComboBox x:Name="SelectedCatalog" IsEnabled="{Binding CanSelectCatalogName}" />