我有一个WPF应用程序/ MVVM模式,它有一个组合框和一个树视图控件。 我想要做的是只有当我从组合框中选择一个项目时才显示树视图控件。
例如:我有一个名为SelectedTransactionName的属性
private string _selectedTransactionWsName;
public string SelectedTransactionName
{
set
{
if (_selectedTransactionWsName == value) return;
this._selectedTransactionWsName = value;
InitializaMessageElement();
}
get
{
return this._selectedTransactionWsName;
}
}
我的InitializaMessageElement方法将向所选项显示匹配的事务名称。但是现在我不想只在我对组合框进行选择时才在页面加载时显示树视图。 在页面加载时,我希望我的窗口只显示组合框。
由于
答案 0 :(得分:1)
您的视图模型可以包含TreeView
绑定其Visibility
属性的计算布尔属性,例如:
public bool IsTransactionNameSelected
{
get
{
return !string.IsNullOrEmpty(_selectedTransactionWsName);
}
}
然后,您可以在SelectedTransactionName
:
set
{
if (_selectedTransactionWsName == value) return;
this._selectedTransactionWsName = value;
InitializaMessageElement();
this.NotifyOfPropertyChanged(() => this.IsTransactionNameSelected);
}
然后,您可以使用提供的TreeView
绑定Visibility
BooleanToVisibilityConverter
媒体资源:
<TreeView
Visibility="{Binding IsTransactionNameSelected,
Converter={StaticResource BooleanToVisibilityConverter}" ...