数据绑定到成员属性并提供设计时值

本文关键字:成员 属性 数据绑定 | 更新日期: 2023-09-27 18:22:10

我试图理解WPF中的数据绑定,我已经可以进行一些测试了
但我现在很紧张(

为了更好地组织,我想将代码拆分为更多的类,并将同一个Window的元素绑定到不同的类(实际上绑定到不同类的属性)。

我想我必须将窗口的DataContext设置为"this"(窗口本身),并使用绑定路径来指定要使用的属性。

DataContext = this;

-

<Label Content="{Binding Path=_printSettings.CopyCount}"/>

所以f.e.我想绑定到CopyCount,它是一个返回字符串的属性
该属性属于当前窗口的私有字段_printSettings中的实例。_printSetting实现了INotifyPropertyChanged,并以双向原则进行通知。

但是标签在设计和运行时是空的。。。

我还注意到,在我之前的测试中,设计器中没有设置默认值。有人知道实现吗?如果可能,不使用回退值。

-主窗口.xaml.cs

<Label Content="{Binding ElementName=MainWindow,Path=PrintSettings.CopyCount, FallbackValue=[0]}">

-主窗口.cs

private PrintSettings _printSettings = new PrintSettings();
public PrintSettings PrintSettings {
   get {
      return _printSettings;
   }
}
public MainWindow()
{
   DataContext = this;
}
  • 打印设置.cs
private int _copyCount = 1;
//Copy count
public string CopyCount 
{
    get {
        return "" + _copyCount;
    }
}

-

编辑:再次添加更多代码

数据绑定到成员属性并提供设计时值

绑定针对/通过公共属性工作_printSettings不是属性。Visual Studio"输出"窗口可以显示您遇到的任何绑定错误。

_printSettingsCopyCount应为public

如果没有帮助,那么在xaml Set窗口中,Name和binding将看起来像这个

<Label Content="{Binding ElementName=YourWindowName,Path=_printSettings.CopyCount}"/>

<Label Content="{Binding ElementName=YourWindowName,Path=DataContext._printSettings.CopyCount}"/>