Во-первых, мой сценарий. У меня есть ViewModel с открытым свойством Items типа ObservableCollection<UserControl>
, который содержит пользовательские элементы управления, которые я хочу отображать с помощью <ItemsControl ItemsSource="{Binding Items}" />
.
Я получаю UserControls, используя Application.Current.TryFindResource("ControlKey") as UserControl
.
Когда у каждого ресурса свой x:Key
, все работает нормально. Однако, когда я добавляю больше UserControls к Items с тем же x:Key
, ItemsControl отображает только один из UserControls с идентичным x:Key
, даже если все пользовательские элементы управления присутствуют в Items .
Например, я добавляю элементы в коллекцию следующим образом:
Items.Add(Application.Current.TryFindResource("Filter1") as UserControl);
Items.Add(Application.Current.TryFindResource("Filter1") as UserControl);
Items.Add(Application.Current.TryFindResource("Filter2") as UserControl);
В ItemsControl отображаются только два элемента управления, один с x: ключ «Filter1» и один с «Filter2». Второй UserControl с x: ключ «Filter1» не отображается.
Чего мне не хватает? Большое спасибо.