ViewModel'imde her biri başka bir koleksiyon içeren bir nesne koleksiyonum var. Bunu Görünümümde yuvalanmış ListView ItemTemplates kullanarak göstermeye çalışıyorum. BuradaVeri nasıl yuvalanır? ListView ItemTemplates Metro/WinRT?
public ViewModelObject
{
public ObservableCollection<OuterObject> OuterCollection { get; }
}
public OuterObject
{
public string OuterTitle;
public ObservableCollection<InnerObject> InnerCollection { get; }
}
public InnerObject
{
public string InnerTitle;
}
Ve ben XAML bu ViewModel kullanmaya çalışıyorum nasıl bir basitleştirme olduğunu: Ben iç ListView kaldırırsanız
<ListView ItemsSource="{Binding OuterCollection}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding OuterTitle}"/>
<ListView ItemsSource="{Binding InnerCollection}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding InnerTitle}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
, İşte benim ViewModel kodunun bir basitleştirme olduğunu dış ListView bağlama mükemmel çalışıyor. İç koleksiyon nesnesini iç ListView'e nasıl doğru bir şekilde bağlayacağımı anlayamıyorum. İç bağlantıyı, {Binding DataContext.InnerCollection}
ve {Binding RelativeSource={RelativeSource TemplatedParent}, Path=InnerCollection}
ile denedim, ancak bunların tümü çökmesine neden oldu. Bu yuvalanmış bağlamaya ulaşmak için uygun yol nedir?
DÜZENLEME: Bu Windows Phone 7'den uyarlanması için çalışılmaktadır bir uygulama için olduğunu eklemek gerekir ve WinRT mevcut değildir LongListSelector
yerine birini bulmak bir girişimdir.
Bu benim için çalıştı! Anlamaya çalışırken çıldırdım. Bir sorun - {Binding InnerTitle} öğesini başka bir şeye değiştirmek zorunda kaldınız mı? Tüm ListView öğelerini doğru şekilde oluşturduğumu görüyorum, ancak {Binding InnerTitle} çalışmıyor. – Weston
Nevermind - benim sorunum, 'public string Name', 'public string Name'; set; } 'yapar. – Weston