2011-08-23 94 views
0

有組合框綁定的Observable集合。當更新selecteditem時,WPF組合框selectedvalue不更新​​

public ObservableCollection<AnyType> AnyTemplates { get; set; } 

和ComboBox結合到此集合:

<ComboBox Name="cmbKeyA" 
      Width="100" 
      SelectedValue="{Binding Path=KeyAName}" 
      ItemsSource="{Binding Path=DataContext.KeyTemplates, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" 
      DisplayMemberPath="Name" 
      SelectedValuePath="Name"/> 

首先集合爲空。然後,當我在收藏中添加新值時,checkBox selectedItem更改爲此值。如果我更改集合Item中的Name屬性,則會更改組合框selectedItem(我會看到DisplayMemberPath更改爲新值),但選中的值不會更改,直到我手動再次選擇此項目。 Name屬性集合元素調用PropertyChanged事件。 爲什麼這不起作用。總結:當我在comboxo SelectedItem程序中更改NameProperty時,組合框SelectedItem被更改,但是SelectedValue沒有更新,直到我手動再次在組合框中更改組合框。

回答

0

嘗試使用ItemStyle容器的組合框,所以它看起來是這樣的:

此外,還要確保你所做的一切與NotifyPropertyChanged和設置的DataContext。另一件不要做的事情是確保在加載時首先在視圖模型中設置初始值,然後只是SelectedItem會改變。