好的,这是一个有趣的。
我有一个带标签的wpf应用程序。我想要做的是有一个数据库设置,关闭编辑所有文本框的能力。我想的是引入值,如果值为true,那么我会将所有文本框都变为只读。
我见过这个例子:
private void DisableControls(Control con)
{
foreach (Control c in controls)
{
DisableControls(c);
}
con.Enabled = false;
}
然而,我在控制下得到红色波浪线,再次在启用下。我将在前言中说我是WPF的新手。
有没有人能够解决这个问题(甚至更好的方法),任何指向正确的方式都会有所帮助。
答案 0 :(得分:2)
创建一个包装数据库模型的视图模型
public class MyViewModel : INotifyPropertyChanged
{
public bool MakeReadOnly {get;set;}
}
在视图中引用您的视图模型
<Window x:Class="Example.MainWindow"
...
xmlns:local="clr-namespace:Example"
...>
<Window.Resources>
<local:MyViewModel x:Key="ViewModel"/>
</Window.Resources>
...
</Window>
将布尔值绑定到文本框IsReadOnly属性
<TextBox x:Name="FirstName" IsReadOnly="{Binding MakeReadOnly">
The user may not modify the contents of this TextBox if marked as readonly
</TextBox>
<TextBox x:Name="LastName" IsReadOnly="{Binding MakeReadOnly">
The user may not modify the contents of this TextBox if marked as readonly
</TextBox>
有关查看模型的更多信息here
希望这有帮助!