Это может быть и невозможно, и я могу попытаться сделать что-то, что я не должен делать в первую очередь, но вот оно.Инициализировать коллекцию с помощью типа из другой коллекции
- У меня есть обычай WPF управления, который имеет две IEnumerable коллекции
- Первая коллекция (ItemsSource) объявляется с помощью XAML и может быть любого типа объектов.
- Вторая коллекция, которую я реализую, снова является IEnumerable, которую я хочу инициализировать как ObservableCollection.
- Вот моя проблема, поскольку я ограничен, что обе коллекции имеют один и тот же тип объектов (нет, я не могу использовать объект как тип). Например, ItemsSource имеет объекты типа «MyItem», и я хочу инициализировать вторую коллекцию ObservableCollection().
Возможно ли это? Я делаю то, что я не должен делать? Любые подсказки будут оценены. На стороне примечания, если я передаю второй сборник через XAML, все хорошо, но я не хочу добавлять такое ограничение в функцию, которую я реализую.
Edit:
Вот некоторые фрагменты кода для демонстрации сценария: Первая коллекция, обратите внимание, что эта коллекция наследуется от System.Windows.Controls.ItemsControl
класса:
public IEnumerable ItemsSource { get; set; }
Вторая коллекция:
public IEnumerable SelectedItems
{
get
{
this.InitializeSelectedItemsCollectionIfRequired();
return (IEnumerable)GetValue(SelectedItemsProperty);
}
set
{
SetValue(SelectedItemsProperty, value);
}
}
private void InitializeSelectedItemsCollectionIfRequired()
{
if (this.GetValue(SelectedItemsProperty) == null)
{
// Here is where I want to initialize the second collection if it was not already set in via a Binding in the XAML
this.SelectedItems = new System.Collections.ObjectModel.ObservableCollection<"dont know how to pass correct type here">();
}
}
Возможно, некоторые небольшие фрагменты кода, касающиеся двух коллекций, могут быть полезны? – Oliver
Извините, что добавил несколько строк того, что я сейчас отлаживаю в своем посте, –