2016-09-26 46 views
2

我想使用Synfusion的SfAutoComplete控制,並將其綁定的AutoCompleteSourceProperty屬性列表(或的ObservableCollection)的。綁定Syncfusion SfAutoComplete的AutoCompleteSourceProperty源列出串

我正在使用MVVM,並且在此視圖和ViewModel之間還有其他Bindings可以正常工作。

這裏是我的查看部分代碼:

var searchAuto = new SfAutoComplete 
{ 
    Watermark = "Enter search terms" 
}; 
searchAuto.SetBinding(SfAutoComplete.AutoCompleteSourceProperty, "MeshListAuto"); 
searchAuto.SuggestionMode = SuggestionMode.Contains; 
searchAuto.AutoCompleteMode = AutoCompleteMode.Suggest; 
searchAuto.MaximumDropDownHeight = 200; 

這裏是我的視圖模型部分代碼:

List<string> _meshListAuto; 
public List<string> MeshListAuto 
{ 
    get { return _meshListAuto; } 
    set 
    { 
     _meshListAuto = value; 
     OnPropertyChanged(); 
    } 
} 

(我已經嘗試了上面的的ObservableCollection以及...)

foreach (var termSet in test.TranslationStack.TermSet) 
{ 
    if (termSet.Field == "MeSH Terms") 
    { 
     MeshListAuto.Add(termSet.Term); 
     Debug.WriteLine(MeshListAuto.Count); 
    } 
} 

問題是,List中的OnPropertyChanged事件在我從ViewModel的構造函數以外的任何位置添加到List時似乎沒有觸發。

所以,如果我把這個線在構造

MeshListAuto.Add("test item"); 

然後「測試項目」是出現在SfAutoComplete列表中的唯一的事情,但沒有別的。

我檢查了字符串被添加到我的綁定列表中,但只有在構造函數中添加的元素才顯示出來。

作爲

我用短信服務通知我SfAutoComplete控件,它應該要綁定的列表已更改一個臨時解決方案:

在視圖模型:

MessagingCenter.Send<List<string>>(MeshListAuto, "list_updated"); 

在視圖中:

MessagingCenter.Subscribe<List<string>>(this, "list_updated", (sender) => 
{ 
    searchAuto.AutoCompleteSource = sender; 
}); 

但我想這與MVVM的做法不太一致,對吧?

+0

@ 1-贊月份將推出即將推出的第3卷SP1可用,這似乎是一個問題關於這些項目是如何刷新的,以及這個控件是否支持它,無論如何你需要一個可觀察的集合。 –

+0

@JesusAngulo,是的,你是對的,但它似乎像這個控件不喜歡ObservableCollections ... –

回答

0

我們認爲作爲特徵的要求,這將是我們計劃於2016年十月

+0

是在新版本中實現嗎? –