Привет, я работаю над проектом WinRT с картой MVVM-Light. У меня есть список, в котором ItemsSource является ObservableCollection на моей модели ViewModel. Объекты (ClassOne) в этом ObservableCollection имеют поле, которое является ObservableCollection. В Listview у меня есть ComboBoxes, которые itemsSource, который я хотел бы привязать ко второму ObservableCollection (это поле в другом наблюдаемом списке). Второй ObservableCollection получает динамическое заполнение в ViewModel моего представления.Как установить ItemsSource из combobox из Observablecollection
Мой Xaml код:
<ListView ItemsSource="{Binding CollectionOne}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding DataCollectionOne}"></TextBlock>
<ComboBox ItemsSource="{Binding Path=CorrespondingViewModel.CollectionOne.CollectionTwo, Source={StaticResource Locator}}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DataCollectionTwo}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Что я пытаюсь сделать, это:
<ComboBox ItemsSource="{Binding Path=CorrespondingViewModel.CollectionOne.CollectionTwo, Source={StaticResource Locator}}">
Но это не работает.
Это моя собственность CollectionOne на ViewModel:
private ObservableCollection<ClassOne> _collectionOne;
public ObservableCollection<ClassOne> CollectionOne
{
get { return _collectionOne;; }
set
{
if (_collectionOne; == value)
{
return;
}
_collectionOne; = value;
RaisePropertyChanged(() => CollectionOne);
}
}
Это класс внутри ObservableCollection (ClassOne):
public class ClassOne
{
public string DataCollectionOne{ get; set; }
public ObservableCollection<ClassTwo> CollectionTwo{ get; set; }
}
Класса только содержит строковое свойство.
public class ClassTwo
{
public string DataCollectionTwo{ get; set; }
}
Любые идеи?
Спасибо за советы, Но поле, в котором я нуждаюсь, находится внутри CollectionTwo, который находится внутри CollectionOne. Таким образом, нормальное Binding не работает. – DrZoidberg
Я сделал тестовый проект именно с вашим кодом и обменял только то, что я написал выше: привязка работает для меня, и это свойство находится внутри CollectionTwo или нет? –
roqz
Спасибо, первый раз, когда у меня была ошибка в моей модели просмотра, ваш метод действительно работает. – DrZoidberg