0

私はユーザーコントロールを持っています:

<UserControl>
    <TextBox Name="TB1"/>
    <TextBox Name="TB2"/>
</UserControl>

コードビハインド:

public partial class MyControl : UserControl
{
  public TwoStrings TsObj { get; set; }
  public MyControl()
  {
      InitializeComponent();
  }
}

どこ

public class TwoStrings
{
    string S1 { get; set; }
    string S2 { get; set; }
}

最小限のコード変更で TsObj.S1 を TB1.Text に、TsObj.S2 を TB2.Text にバインドする方法は? TwoStrings は変更しないでください。オブジェクトの更新は、コントロールに反映される必要があります。コード例をください。

4

1 に答える 1

2

インターネット上には wpf/silverlight データバインディングに関するリソースがたくさんあります。ここでも stackoverflow にあります。しかし、簡単に言えば、これを簡単に行うことができます:

<UserControl>
  <TextBox Name="TB1" Text="{Binding S1}" />
  <TextBox Name="TB2" Text="{Binding S2}"/>
</UserControl>
public partial class MyControl : UserControl
{
    public TwoStrings TsObj { get; set; }
    public MyControl()
    {
      InitializeComponent();

      this.DataContext = TsObj = new TwoStrings();
    }
}

編集: TwoStrings インスタンスのコードを介してプロパティを変更した場合、テキストボックスに反映されないことに注意してください。INotifyPropertyChangedこれは、TwoStrings (MVVM パターンの ViewModel - VM) にインターフェイスを実装して双方向を取得する必要があるためです。データバインディング。そうしないと、テキスト ボックスからデータ コンテキスト (TwoString) のプロパティへのデータ バインドが 1 方向のみになります。

于 2013-02-20T12:25:36.990 に答える