Я новичок в разработке пользовательских элементов управления в WPF, но я попытался разработать один для использования в приложении, которое я разрабатываю.Этот элемент управления представляет собой текстовое поле автозаполнения.В этом элементе управления у меня есть DependencyProprety
, в котором есть список возможных записей, которые можно выбрать при вводе текста
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");
}
}
. Я использую этот элемент управления в пользовательском контроле и связываю его со свойствомв viewmodel
<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>
У меня есть view-модель, которую я назначаю при загрузке usercontrol для datacontext из usercontrol load
protected virtual void Window_Loaded(object sender, RoutedEventArgs e)
{
if (!DesignerProperties.GetIsInDesignMode(this))
{
this.DataContext = viewModel;
SetLabels();
}
}
Эта модель представления имеет свойство Articles
со значениями, носвойство ItemsSource
элемента управления равно нулю, когда я пытаюсь выполнить поиск в списке после того, как пользователь введет какой-либо текст.Есть ли какой-то особый шаг, который я пропустил при создании элемента управления, поэтому используйте шаблон mvvm.
Я надеюсь, что объяснение проблемы понятно.Любая помощь / советы будут приветствоваться.