0
我是WPF中自定義控件開發的新手,但我嘗試開發一個在我正在開發的應用程序中使用的控件。此控件是一個自動完成文本框。在這種控制中,我有一個DependencyProprety
有可能的條目列表,這樣一個人可以從在輸入文本WPF自定義控件數據綁定
public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register("ItemsSource",typeof (IList<object>),typeof (AutoCompleteTextBox),new PropertyMetadata(null));
public IList<object> ItemsSource
{
get { return (IList<object>) GetValue(ItemsSourceProperty); }
set
{
SetValue(ItemsSourceProperty, value);
RaiseOnPropertyChanged("ItemsSource");
}
}
我使用該控件在用戶控件和該控件的屬性在視圖模型
關聯選擇<CustomControls:AutoCompleteTextBox Height="23" Width="200"
VerticalAlignment="Center" Text="{Binding Path=ArticleName, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Path=Articles,
Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
</CustomControls:AutoCompleteTextBox>
我有我的用戶控件負荷分配到用戶控件的加載
protected virtual void Window_Loaded(object sender, RoutedEventArgs e)
{
if (!DesignerProperties.GetIsInDesignMode(this))
{
this.DataContext = viewModel;
SetLabels();
}
}
此視圖模型具有的DataContext的一個視圖模型屬性Articles
與值但該控件的ItemsSource
屬性爲空,當我嘗試在用戶輸入一些文本後在列表中搜索。 當我創建控件時,是否有任何特殊的步驟讓我使用mvvm模式。
我希望以一種可以理解的方式解釋問題。任何幫助/提示將受到歡迎。
感謝您的回覆,我糾正了兩個問題。 – 2011-03-23 17:34:41
現在viewmodel中的屬性被調用,但當我調用'wordMatches = ItemsSource.Where(x => x.ToString().ToLower()。StartsWith(Text.ToLower(),StringComparison.InvariantCulture)) .Select x => new KeyValuePair(x.ToString(),x))。ToList();'ItemsSource仍然爲null –
2011-03-23 17:36:21