2013-02-20 31 views
0

对象proporties我的用户控件:绑定用户控制以最小的努力

<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不应该改变。对象的更新应该反映在控制上。代码示例请。

回答

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(这是MVM模式中的ViewModel-VM)中实现INotifyPropertyChanged接口来获得双向数据绑定。否则,只会从文本框中将数据绑定到datacontext上的属性(TwoString)

+0

Thx。我能想到的所有其他方式都比较复杂。应该在哪里实施INotifyPropertyChanged? – watbywbarif 2013-02-20 12:36:34

+0

我编辑了最后的注释来澄清。 – 2013-02-20 12:45:40