2016-09-26 42 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

是在新版本中实现吗? –