如何绑定到 usercontrol.resources for Windows Phone 8.1 (C#) 中的复杂对
本文关键字:复杂 Phone for 绑定 何绑定 usercontrol resources Windows | 更新日期: 2023-09-27 18:30:30
在过去的几天里,我已经在网上搜索了,但似乎找不到我认为非常简单的任务。 我想在我的 Windows Phone 应用程序的 XAML 页面中添加一个资源,该资源将引用一个复杂对象,但我找不到正确的方法。 这可能吗? 对象由类似于以下内容组成:
Public class ComplexClass
{
Public string name { get; set; }
Public int ID { get; set; }
Public observablecollection<SimpleClass> simpleObjects { get; set; }
Public addSimpleObject(SimpleClass newSimpleObject)
{
if (simpleObjects == null)
simpleObjects = new ObservableCollection<SimpleClass>();
simpleObjects.Add(newSimpleObject);
}
}
Public Class SimpleClass
{
Public String Name { get; set; }
Public String Disc { get; set; }
}
您可以使用 MVVM 来实现这一点。已经有大量可用的教程可供您访问,以向您展示如何遵循此设计模式,所以我不会深入讨论。
相反,我将向您展示一种将数据获取到视图的简单方法。
在 UserControl(或 Page)或其他任何内容的构造函数中,将 DataContext 设置为 ComplexClass 的实例:
ComplexClass complexClass;
public MyUserControl1()
{
complexClass = new ComplexClass();
complexClass.AddSimpleObject(new SimpleClass { Name = "Bob" });
this.DataContext = complexClass;
this.InitializeComponent();
}
然后在 XAML 中,可以像这样绑定到它:
<StackPanel>
<!-- Binding to properties on ComplexClass -->
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding ID}" />
<ListView ItemsSource="{Binding SimpleObjects}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<!-- Binding to properties on SimpleClass -->
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Disc}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
在不知道您的代码细节的情况下,我很难提出最适合您的方法。我会阅读 MVVM 并查看模型。