はじめに、私はC#とxamlにかなり慣れていません。
私はバインディングについてチュートリアルを見て、チェックしましたが、見たもののほとんどはxamlでオブジェクトを作成します。ただし、コードでオブジェクトを作成し、そのプロパティにバインドしたいと思います。さらに、後でコードで定義されたいくつかのオブジェクトがあります。一般に、テキストボックスにバインドします。
一般に、私のコードは次のようになります。
MainWindow.xaml.cs
public partial class MainWindow : Window
{
MyTestObject myTestObject;
public MainWindow()
{
myTestObject= new MyTestObject ();
this.DataContext = this;
InitializeComponent();
}
}
MyTestObject .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
にバインドする方法の例に最も感謝します。
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}" />