WPF - XAML 与嵌套 类 绑定
WPF - XAML binding with nested classes
我有以下 class 结构。
class A
{
List<B> B = new List<B>();
}
class B
{
List<C> C = new List<C>();
}
class C
{
}
我正在遵循 MVVM 模式。在我的视图模型中,我有一个从 class A 的对象创建的 Observable 集合。
我需要将它绑定到我的视图 (WPF),如下所示。
Header 1 ( class A) * Item 1 ( class C)
* Item 2 (class C)
* Item 3 ( class C)
* Item 1 ( class C)
Header 2 (class A) * Item 1 ( class C)
* Item 2 (class C)
* Item 3 (class C)
* Item 4 ( class C)
这可能吗?如果是,有人可以帮我将它绑定到视图吗?
实际上,无法更改 class 结构。不幸的是,以这种方式拥有它是必须的。
首先,您必须为其创建属性:
public class A
{
List<B> B = new List<B>() { get; set; }
}
public class B
{
List<C> C = new List<C>() { get; set; }
}
public class C
{
}
之后,您可以在视图中创建一个 ItemsControl
,为每个 C
生成您希望看到的视图。有关 ItemsControl 的更多信息,我将您转到 MSDN(我不打算创建整个应用程序:https://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol%28v=vs.110%29.aspx
在您的情况下,您需要两个项目控件,一个用于 B 对象,一个用于 C 对象。
我有以下 class 结构。
class A
{
List<B> B = new List<B>();
}
class B
{
List<C> C = new List<C>();
}
class C
{
}
我正在遵循 MVVM 模式。在我的视图模型中,我有一个从 class A 的对象创建的 Observable 集合。 我需要将它绑定到我的视图 (WPF),如下所示。
Header 1 ( class A) * Item 1 ( class C)
* Item 2 (class C)
* Item 3 ( class C)
* Item 1 ( class C)
Header 2 (class A) * Item 1 ( class C)
* Item 2 (class C)
* Item 3 (class C)
* Item 4 ( class C)
这可能吗?如果是,有人可以帮我将它绑定到视图吗? 实际上,无法更改 class 结构。不幸的是,以这种方式拥有它是必须的。
首先,您必须为其创建属性:
public class A
{
List<B> B = new List<B>() { get; set; }
}
public class B
{
List<C> C = new List<C>() { get; set; }
}
public class C
{
}
之后,您可以在视图中创建一个 ItemsControl
,为每个 C
生成您希望看到的视图。有关 ItemsControl 的更多信息,我将您转到 MSDN(我不打算创建整个应用程序:https://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol%28v=vs.110%29.aspx
在您的情况下,您需要两个项目控件,一个用于 B 对象,一个用于 C 对象。