我有用户控制权:
<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。对象的更新应该反映在控制上。代码示例请。
答案 0 :(得分: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实例中的代码更改属性,则不会反映在文本框中,因为您需要在TwoStrings中实现INotifyPropertyChanged
接口(这是ViewModel - MVVM模式中的VM)以获得双向数据绑定。否则,您只能从文本框中获取数据绑定到datacontext上的属性(TwoString)