1

こんにちは、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; }
}

何か案は?

4

1 に答える 1

1

私はテストプロジェクトでそれを試しました、

コードを簡単に交換できます

<ComboBox ItemsSource="{Binding Path=CorrespondingViewModel.CollectionOne.CollectionTwo, Source={StaticResource Locator}}"> 

<ComboBox ItemsSource="{Binding CollectionTwo}">

私のテストプロジェクトでは正常に動作します。

それが役立つことを願っています!

于 2013-03-20T13:29:13.990 に答える