이 문제에 대한 많은 검색을 수행했지만 여전히 내 프로젝트에 어떤 문제가 있는지 알 수 없습니다. 이 흐름은 다음과 같습니다.
View Model을 바인딩하고 싶습니다. 이 뷰 모델에는 observablecollection
이 포함 된 observablecollection
이 포함되어 있습니다. 이제 아무 문제없이 개발하는 동안 observablecollection
에 바인딩 할 수 있지만 배포 할 때 다른 observablecollection
내부의 데이터는 표시되지 않습니다.ObservableCollection 내에서 ObservableCollection 바인딩
public class Product
{
private string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
private ObservableCollection<SubProducts> subProductsSaProducts;
internal ObservableCollection<SubProducts> SubProductsSaProducts
{
get
{
return subProductsSaProducts;
}
set
{
subProductsSaProducts = value;
}
}
}
프로젝트/모델/Category.cs은/Product.cs
프로젝트/모델/SubProduct.cs
class SubProducts
{
private string subName;
public string SubName
{
get
{
return subName;
}
set
{
subName = value;
}
}
}
프로젝트/모델 : 아래
내 코드입니다class Category
{
private string title;
public string Title
{
get
{
return title;
}
set
{
title = value;
}
}
private ObservableCollection<Product> subProducts;
public ObservableCollection<Product> SubProducts
{
get
{
return subProducts;
}
set
{
subProducts = value;
}
}
}
모델 구현 617,451,515,
그리고이 뷰 모델 :
<Page.DataContext>
<vm:CategoryViewModel/>
</Page.DataContext>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<FlipView x:Name="flipView" HorizontalAlignment="Left" VerticalAlignment="Top" Width="360" ItemsSource="{Binding}" Background="#19B0F100">
<FlipView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Foreground="Black" FontSize="30" Text="{Binding Title}"/>
<ListView ItemsSource="{Binding SubProducts}" Background="#FF0C0909" Height="600">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Foreground="Red" FontSize="30" Text="{Binding Name}"/>
<ListView ItemsSource="{Binding SubProductsSaProducts}" Margin="30,0,0,0" Background="#FF933131" Height="197" Width="300">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Foreground="Yellow" FontSize="20" Text="{Binding SubName}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
</Grid>
지금 : 프로젝트/뷰 모델/CategoryViewModel.cs
class CategoryViewModel : ObservableCollection<Category>
{
public CategoryViewModel()
{
ObservableCollection<Product> pCOl1 = new ObservableCollection<Product>();
ObservableCollection<SubProducts> pCol1Sub = new ObservableCollection<SubProducts>();
SubProducts subP1 = new SubProducts();
subP1.SubName = "Lansang";
SubProducts subP2 = new SubProducts();
subP2.SubName = "Lata";
pCol1Sub.Add(subP1);
pCol1Sub.Add(subP2);
Product p1 = new Product();
p1.Name = "Pothaw";
p1.SubProductsSaProducts = pCol1Sub;
pCOl1.Add(p1);
ObservableCollection<Product> pCOl2 = new ObservableCollection<Product>();
Product p2 = new Product();
p2.Name = "Taklob sa COke";
pCOl2.Add(p2);
Add(new Category()
{
Title = "Didang",
SubProducts = pCOl1
});
Add(new Category()
{
Title = "Plastic",
SubProducts = pCOl2
});
}
}
그리고 내가 XAML 느릅 나무의보기 모델을 사용하는 페이지입니다 예상 된 데이터가 개발 모드로 표시됩니다. 즉, 앱을 실행하지 않는 경우에만 데이터가 표시됩니다.
내 질문은 :
- 내 바인딩 어떤 문제가 있습니까?
- 올바른 방법은 무엇입니까?
- 앱을 실행할 때 왜 데이터가 표시되지 않습니까?
저는 C# WinRT 개발에 익숙해서 어떤 제안이라도 환영 할 것입니다.
[<> 망가 ObservableCollection에 상속] ObservableCollection에에서 상속하는 생각 http://stackoverflow.com/q/21692193/1997232). – Sinatr
어떻게해야합니까? – EJL
'ObservableCollection>'괜찮습니다. 'class MyCollection : ObservableCollection - '이 아닙니다. –
Sinatr