2016-11-13 81 views
1

我試圖綁定顯示客戶端視圖窗體中的客戶端狀態的組合框。我有一個名爲ClientUI一個上下文類它有一個屬性CurrentClient這樣的:父母更新時更新組合框

private Client _CurrentClient= null; 
public Client CurrentClient 
{ 
    get 
    { 
     return _CurrentClient; 
    } 
    set 
    { 
     _CurrentClient= value; 
     OnPropertyChanged("CurrentClient"); 
    } 
} 

在我的XAML形式我有充分的財產CurrentClient如姓名,ADRESS等綁定到文本框。 所以,當我做的:

CurrentClient = SomeClient; 

它會自動更新我的表格的所有字段以顯示新的客戶。 現在我想要到一個ComboBox與客戶狀態ClientUI結合我狀態的列表和我CurrentClient狀態財產。 狀態也是屬性類名稱鍵入字符串。

這裏是我的組合框結合:

<ComboBox IsEditable="False" DisplayMemberPath="Name" SelectedItem="{Binding CurrentClient.Status, Mode=TwoWay}" ItemsSource="{Binding ClientStatusList}" SelectedValuePath="Name" /> 

和它的作品,當我改變了ComboBox它改變CurrentClient的proprty,當我強迫CurrentClient.Status這樣的...

CurrentClient.Status = ClientStatusList[0] 

... Combobox顯示值。 問題是,當我做

CurrentClient = SomeClient; 

它更新每隔textBox中,但不是組合框。

感謝您的幫助!

+0

'SomeClient.Status'有價值嗎?另外,當你嘗試'CurrentClient.Status = SomeClient.Status'而不是'CurrentClient.Status = ClientStatusList [0]'時,結果是什麼? – sthotakura

+0

謝謝! 'SomeClient.Status'有一個值,但是當我做'CurrentClient.Status = SomeClient.Status'時什麼都沒有發生:SomeClient.Status被設置爲新狀態,但comboBox不更新。 – Lolrapa

+0

'ItemsSource =「{Binding ClientStatusList}」'表示在'Client'類中有一個名爲'ClientStatusList'的屬性。檢查'ClientStatusList'有一定的價值。 – AnjumSKhan

回答

0

您的「CurrentClient」屬性具有屬性更改通知,但您的客戶端類中的「狀態」屬性是否具有屬性更改通知?如果不嘗試將INotifyPropertyChanged接口添加到客戶端類,然後將屬性更改通知添加到您的狀態屬性。

僅僅因爲你有屬性改變了屬性的通知並不意味着子屬性也可以。由於這個原因,綁定到虛線的屬性可能是有節奏的。

如果您沒有編輯客戶端類的選項,那麼您可以嘗試在您的clientUI類中創建另一個「狀態」屬性,該屬性具有屬性更改通知,然後在「CurrentClient」設置器中設置該屬性。你應該能夠更可靠地綁定到這個新的屬性

+0

謝謝你的回答! 'Client'類實現'INotifyPropertyChanged'和'Status'屬性觸發'OnPropertyChanged' – Lolrapa

+0

對不起,如果沒有任何幫助 –