如何通过绑定填充ObservableCollection

时间:2014-02-05 20:30:18

标签: c# wpf telerik

您好我正在尝试通过Autocompletebox的选定项目填充Observable Collection。

<Telerik:RadAutoCompleteBox Itemssource="{Binding People}" />

如何启动Observable Collection以与RadAutocompleteBox绑定。 我应该如何设置SelectedItems绑定方法。

public class People
{
    public string Person
    { get; set; }
    public DateTime Date
    { get; set; }
}

public ObservableCollection<string> Persons{ get; set; }

2 个答案:

答案 0 :(得分:0)

你可以试试这个来获得SelectedItems

将此添加到您的viewmodel并编辑您的XAML。 ViewModel:

public ObservableCollection<People> SelectedPeoples { get; set; }

的Xaml:

  <Telerik:RadAutoCompleteBox Itemssource="{Binding People}" 
    SelectedItems="{Binding SelectedPeoples , Mode=TwoWay}" 
    SelectionMode="Multiple" />

修改后

我发现您尝试将类绑定到RadAutoCompleteBox而不是ObservableCollection People,您必须将属性Persons绑定到RadAutocompleteBox。这会将ObservableCollection绑定到RadAutoCompleteBox

<Telerik:RadAutoCompleteBox Itemssource="{Binding Persons}" />

另外,您可以修改ObservableCollection

的声明
public ObservableCollection<People> Persons{ get; set; }

并像这样编辑XAML:

<Telerik:RadAutoCompleteBox Itemssource="{Binding Persons}" DataMemberPath="Person" />

您的RadAutocompleteBox现在会显示Person课程中声明的字符串People

答案 1 :(得分:0)

如果我正确地查看您的代码,您将项目源绑定到类而不是集合。对于项目的源,需要绑定到集合。您将数据上下文设置为类。

Itemssource="{Binding Persons}"