2012-06-28 47 views
0

我是新來的WPF和綁定的東西。我試圖找到解決我的問題,但仍然失蹤​​的東西;/ 我想從TextBox中獲取數據在UserControl中,並將其放置在主窗口中的一個屬性上,其它不;/WPF用戶控件綁定獲取數據

我有一個簡單的類

public class User 
{ 
    public string Name {get; set;} 
    public string Age {get; set;} 
} 

和一個簡單的用戶控制具有兩個TextBoxs

<TextBox Text="{Bind Name}" /> 
<TextBox Text="{Bind Age}" /> 

的UserDetails UC被放置在主窗口這樣叫的UserDetails:

<uc:UserDetails DataContext="{Binding User, Mode=TwoWay}" /> 

並在主窗口視圖模型我有主窗口也有一個按鈕,點擊上應填寫了來自UserDetials UC數據的用戶屬性的屬性

public User User { get; set;} 

。 現在已經很晚了,我需要早晨完成,所以任何直接的解決方案,將不勝感激。

任何想法如何做到這一點?上面的例子非常簡單,但如果你能告訴我怎麼做,我可以處理我的問題。

+0

你可以顯示截圖嗎?如果你是這樣綁定的,你不需要點擊一個按鈕來填充UserControl的用戶控件的細節。您應該將用戶直接綁定到usercontrol,當您更改文本框中的文本時,用戶的屬性將立即更改 – Charleh

+0

需要該按鈕才能從User屬性獲取數據並將它們保存在數據庫中。但總是當我填寫這兩個文本框並單擊該按鈕時,用戶屬性爲空。很難發佈任何截圖,因爲我的應用程序比上面的例子複雜得多,但問題是一樣的。 – suleks

+0

@suleks這不是一個免費的代碼工廠,您可以在這裏指出問題,並期望SO的好用戶能夠用完整的代碼解決方案進行響應,因爲您需要完成一項任務,並且在清晨需要它。我們會提供幫助,通常會提供代碼示例或有用的鏈接,但這種請求會以錯誤的方式蹭到SO用戶。 – evanb

回答

1

這裏有一些事情要嘗試:

  • 確保您設置您的視圖模型到主窗口的DataContext的。即使你沒有爲你的視圖模型使用單獨的類,而只是使用代碼隱藏,你也需要分配DataContext。
  • 它可能只是一個錯字,但在您的文本框中,您已經寫入{Bind Name},當它應該是{Binding Path=Name, Mode=TwoWay},並且對於Age來說是相同的。您需要在屬性上將綁定模式設置爲兩種方式,而不是您在示例中所用的類。
0

您需要實現INotifyPropertyChanged接口並在屬性設置器中觸發PropertyChanged事件。你需要爲你的MainViewModelUser類做這件事。這是一個如何完成的example