2012-04-19 82 views
0

我在寫一個基於列表框的標籤控件。啓用編輯WPF中的ListBox項目

它是使用顯示列表框項目下面的模板:

 <Setter Property="ItemTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
       <local:TagControl Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Remove="RemoveItem" /> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 

我注意到,當我更新TagControl的文字,ListBox中的原始項目不會得到更新。我使用ObservableCollection<string>作爲項目源。

TagControl實現INotifyPropertyChanged並調用事件。

我在做什麼錯?

+0

您是否在設置TagControl的文本後觸發PropertyChanged事件? – 2012-04-19 13:46:53

+0

你真正試圖綁定什麼 - 這不是足夠的代碼。 – NSGaga 2012-04-19 13:48:38

+0

@Miklos:是的,我發射了PropertyChanged。 – 2012-04-19 14:56:24

回答

1

我已經複製了您的問題,並可以提供解決方案。使用IEnumerable枚舉ObservableCollection<string>,它是隻讀的。

如果更換ObservableCollection<string>ObservableCollection<DataItem>其中

public class DataItem 
{ 
    public string Name{get;set;} 
} 

,然後綁定到名稱在您DataTemplate中,列舉的DataItem是隻讀的,但Name屬性是可讀寫的,將被當你更新編輯列表項中的文本。