こんにちは、MVVM-Light フレームワークを使用した WinRT プロジェクトに取り組んでいます。私は、ItemsSource が ViewModel の ObservableCollection であるリストビューを持っています。この ObservableCollection 内のオブジェクト (ClassOne) には、ObservableCollection 自体であるフィールドがあります。Listview には、2 番目の ObservableCollection にバインドしたい itemsSource の ComboBoxes があります (これは、他の observablecollection のフィールドです)。2 番目の ObservableCollection は、ビューの 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; }
}
クラス 2 には、文字列プロパティが含まれているだけです。
public class ClassTwo
{
public string DataCollectionTwo{ get; set; }
}
何か案は?