2014-02-05 75 views
0

您好,我正在尝试通过自动完成框的选定项填充Observable集合。如何通过绑定填充ObservableCollection

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

我该如何启动Observable集合来绑定RadAutocompleteBox。 而我应该如何设置SelectedItems绑定方法。

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

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

更多代码肯定会为您的问题添加一些上下文。 –

+0

这是WPF还是Silverlight? – Loetn

+0

这是WPF。没有期望更多的代码需要,但可以添加 – Master

回答

0

你可以试试这个得到SelectedItems

添加到您的视图模型和编辑您的XAML。 视图模型:

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

的XAML:

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

您的编辑后

我看到你试图将类绑定到RadAutoCompleteBox而非ObservableCollection People,你必须绑定物业PersonsRadAutocompleteBox。这会将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类。

+0

你绝对是对的。我对班级而不是ObservableCOllections有约束力。现在我做了这些变化,也输入 'SelectedItems =“{绑定SelectedPeoples,Mode = TwoWay}” SelectionMode =“Multiple”'但我得到这个错误'对象引用未设置为对象的一个​​实例。 – Master

+0

因此,自动完成目前有物品,但当选择物品时,它会崩溃 – Master

+0

您必须在您的构造函数中初始化ObservableCollection:Persons = new ObservableCollection ();' – Loetn

0

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

Itemssource="{Binding Persons}"