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)中实现接口以获得两种方式数据绑定。否则,您只能从文本框中获得一种方式数据绑定到 datacontext (TwoString) 上的属性

于 2013-02-20T12:25:36.990 回答