【发布时间】:2015-05-19 20:46:28
【问题描述】:
我有一个 View A,它有一个 UserControl U,其中包含自己的 UserControl UChild。
当我设置 A 的 DataContext 时,UCild 是否会使用直接绑定到其祖父母的属性(即 UChild 中的 { Binding PropertyFromA })来获取 A 的 DataContext?
我正在努力实现这一目标,但在我的情况下,孙子似乎没有获得 DataContext。
编辑:
我使用的一些代码:
我的绑定发生在 VM 内部,其中 BookList 是一个被书籍填充的 ObservableCollection:
/// <summary>
///
/// </summary>
public bool FillBooksCtrlList()
{
List<Book> list = DBHelper.GetRecipes();
if (list == null)
{
return false;
}
else
{
BookList = new ObservableCollection<Book>(list);
foreach (Book book in BookList)
{
BookCtrlList.Add(new BookCtrl { DataContext = book, Margin = new Thickness(0, 10, 10, 0) });
}
return true;
}
}
简而言之,我在 BookPanelCtrl 内创建了一个 BookCtrl 的实例 属于 MainView。
也许我绑定的方式有问题?
【问题讨论】:
-
一些代码会有所帮助,但是是的,您应该能够将 PropertyFromA 绑定到 UChild。
-
是的,请看我的小补充。
-
为什么要动态创建控件?为什么不将 BookList 绑定到 View 中的控件(如 ListControl)?
-
我正在尝试绑定到控件列表,但首先需要以某种方式填充该列表,对吧?
标签: wpf data-binding user-controls scope