如果在WPF窗口中,参数的{Binding}超过1个,是否可以为它们命名?
例如,对于我(在XAML部分中)的图像:Visibility="{Binding}"
,还有一些文本框我想要IsEnabled="{Binding}"
有什么方法可以命名吗?那么在背面的代码(.cs方面)中它会选择正确的代码吗?
提前完成。
答案 0 :(得分:2)
您可以简单地将视图模型包装到单个对象中:
public class ViewModel : INotifyPropertyChanged
{
private bool imagesVisibility;
private bool isTextBoxEnabled;
public event PropertyChangedEventHandler PropertyChanged;
public bool ImagesVisibility
{
get { return this.imagesVisibility; }
set
{
this.imagesVisibility = value;
this.PropertyChanged(this,
new PropertyChangedEventArgs("ImagesVisibility"));
}
}
public bool IsTextBoxEnabled
{
// ... similar as with ImagesVisibility property implementation
}
}
请注意,您还需要一个布尔到可见性转换器,您可以在StackOverflow(here)...或elsewhere上找到这些示例。
然后,您只需将ViewModel
的实例设置为表单数据上下文:
public MyForm()
{
InitializeComponent();
DataContext = new ViewModel();
}
然后,您可以执行Visibility="{Binding ImagesVisibility}"
和文本框IsEnabled="{Binding IsTextBoxEnabled}"
等图像绑定。