2013-02-20 30 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