16

刚开始我对 C# 和 xaml 还是很陌生。

我看过,检查过关于绑定的教程,但我看到的大部分内容都是在 xaml.xml 中创建一个对象。但是我想在代码中创建对象,然后绑定到它的属性。此外,稍后我将在代码中定义几个对象。一般来说,我想绑定到文本框。

一般来说,我的代码看起来像这样:

主窗口.xaml.cs

public partial class MainWindow : Window
{
    MyTestObject myTestObject;

    public MainWindow()
    {
        myTestObject= new MyTestObject ();
        this.DataContext = this;
        InitializeComponent();

    }
}

我的测试对象 .cs

class MyTestObject : INotifyPropertyChanged
{
    public MyTestObject ()
    {

    }

    private string testString = "Test";
    public string TestString
    {
        get { return testString; }
        set
        {
            if (value == testString) return;
            testString = value;
            this.OnPropertyChanged("TestString");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
    }
}

最终,我将拥有相当多的(数字)属性,它们将显示在几个文本框中,因为该软件旨在作为发送测量数据的外部硬件组件的接口。我尝试了几种绑定方式,但还没有成功。我将非常感谢一个如何将前面提到的属性绑定到TextBox.

4

1 回答 1

21

将 Datacontext 设置为 myTestObject。或者,为 myTestObject 创建一个公共属性并将 Xaml 绑定设置为 {Binding MyTestObjectPropertyHere.TestString}

例如:

public partial class MainWindow : Window
{
    MyTestObject myTestObject;

    public MainWindow()
    {
        myTestObject = new MyTestObject ();

        this.DataContext = myTestObject;

        InitializeComponent();

    }
}

Xaml

<TextBox Text="{Binding Path=TestString}" />

绑定到 MainWindow 作为数据上下文的示例:

public partial class MainWindow : Window
{
    MyTestObject myTestObject;

    public MyTestObject MyTestObjectProperty { get { return myTestObject; } }

    public MainWindow()
    {
        myTestObject = new MyTestObject ();

        this.DataContext = this;

        InitializeComponent();

    }
}

Xaml

<TextBox Text="{Binding Path=MyTestObjectProperty.TestString}" />
于 2013-11-14T15:45:25.053 回答