WPF中的主细节绑定
为什么我看不到这个例子中的细节呢。我无法更改dataclass、master类和detail类的结构。所以我必须用正确的绑定来解决这个问题WPF中的主细节绑定,wpf,data-binding,Wpf,Data Binding,为什么我看不到这个例子中的细节呢。我无法更改dataclass、master类和detail类的结构。所以我必须用正确的绑定来解决这个问题 public class ViewModel { public dataclass data { get; set; } public ViewModel() { data = new dataclass(); master a_master = new master(); a_mas
public class ViewModel
{
public dataclass data { get; set; }
public ViewModel()
{
data = new dataclass();
master a_master = new master();
a_master.mastername = "hello";
detail a_detail = new detail();
a_detail.detailname = "goodbye";
data.details.Add(a_detail);
data.Add(a_master);
}
}
public class dataclass : ObservableCollection<master>
{
public ObservableCollection<detail> details { get; set; }
public dataclass()
{
details = new ObservableCollection<detail>();
}
}
public class master
{
public string mastername { get; set; }
}
public class detail
{
public string detailname { get; set; }
}
在我的XAML中,我是这样绑定的:
试一试
而不是
<ItemsSource="{Binding Path=data/details}">
我认为您试图实现的是一种主/细节场景,它绑定到分层数据,如中所述。事实上,只要您有一个ObservaleCollection作为从ObservaleCollection派生的类的属性,这就不是分层的,因此绑定表达式中的/将不起作用。有关/的详细信息,请参阅“源遍历绑定到集合层次结构”一节
在C语言中也有广泛接受的约定,即对于公共类型(如此处的类和属性),您应该使用Pascal大小写。您需要先接受一些答案。当然,我可以更改这一点。我只是想知道我在绑定中的错误。在我的实际应用程序中,主类和详细类都是实体框架类。如果不是嵌套的可观察对象,您将在什么情况下加载ListView绑定到的数据?在分层数据中,详细信息集合将是class master的一部分。有关链接,请参见编辑后的答案。
<ItemsSource="{Binding Path=data.details}">
<ItemsSource="{Binding Path=data/details}">