2014-02-05 53 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}" 
相關問題