嗨,我正在使用 MVVM-Light 框架开发 WinRT 项目。我有一个列表视图,其中 ItemsSource 是我的 ViewModel 上的 ObservableCollection。此 ObservableCollection 中的对象 (ClassOne) 有一个字段,该字段本身就是 ObservableCollection。在 Listview 我有 ComboBoxes 谁的 itemsSource 我想绑定到第二个 ObservableCollection(这是另一个 observablecollection 中的字段)。第二个 ObservableCollection 动态填充到我的 View 的 ViewModel 中。
我的 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}}">
但这行不通。
这是我在 ViewModel 上的 CollectionOne 属性:
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; }
}
有任何想法吗?