如果我有一个名为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);
}
注意:上面评论中的问题。
答案 0 :(得分:2)
没有内置的约定支持这个,但你可以做一个简单的绑定:
<ComboBox x:Name="SelectedCatalog" IsEnabled="{Binding CanSelectCatalogName}" />