C# 绑定文本框';将文本转换为类';WPF中的属性和应用程序设置
我刚刚开始使用WPF(来自Windows窗体),我想将文本框的文本绑定到类的属性,并且我希望这也与应用程序的设置同步(C# 绑定文本框';将文本转换为类';WPF中的属性和应用程序设置,c#,wpf,.net-core,data-binding,C#,Wpf,.net Core,Data Binding,我刚刚开始使用WPF(来自Windows窗体),我想将文本框的文本绑定到类的属性,并且我希望这也与应用程序的设置同步(Properties.settings.Default)。有没有可能在没有代码隐藏的情况下实现这一点?目前我有: <TextBox x:Name="HostnameTextBox" Text="{Binding Path=ConnectModel.Hostname, Mode=TwoWay}" /> 它成功地绑定到类的属
Properties.settings.Default
)。有没有可能在没有代码隐藏的情况下实现这一点?目前我有:
<TextBox x:Name="HostnameTextBox" Text="{Binding Path=ConnectModel.Hostname, Mode=TwoWay}" />
它成功地绑定到类的属性主机名。我偶然发现了多绑定
,但我知道这不是我想在本例中使用的,对吗?如何使Properties.Settings.Default.Hostname
属性与TextBox和类的属性同步,即当TextBox.Text发生更改时,用户定义类的属性和设置属性都将更新?是否只能在XAML文件中执行此操作
有没有可能在没有代码隐藏的情况下实现这一点
否因为属性.Settings.Default
在Xaml中没有以任何形式表示;没有链式绑定,尤其是只使用一个绑定
我认为有三种方法,一种是错误的,两种是正确的
INotifyPropertyChanged
,并且可能存在订阅属性更改事件并相应更新设置的代码坦白地说,我会选择#3,因为它是最简单的工作。错了,您希望使用多值转换器的多绑定。但是,这完全取决于“synchronized”在这里的实际含义。您基本上希望在
文本框中更新属性值时,也更新应用程序设置中的属性值,我想在应用程序设置中更新属性值,并在文本框的值发生更改时更新用户定义类的属性。这显然是错误的。您可以直接绑定,比如{Binding Path=(属性:Settings.Default).MySetting}
@Clemens,这就是所谓的答案…发布它。答案是什么?这个问题完全不清楚。这不是关于如何绑定到设置。默认设置,而是(可能)如何同时绑定到多个属性。是的,设置属性不在Xaml上。这就是我的答案。我提供了三种解决方法。如果有办法更改绑定中的替代值;我洗耳恭听。“设置属性不在Xaml上”-这是什么意思?如我前面的评论所示,您当然可以直接在XAML中绑定到这些属性。