[英]DataContext is not Accessible in Event of User Control
我正在寻找以下情况的解决方案
在我的Windows 10应用程序中,我有一个order.xaml,在该页面中我有一个用户控件,我已经从我的用户控件中的订单页面成功接收了DataContext。 但是,在我的用户控件中触发OrderItemList_Loaded事件时,在这种情况下我没有收到DataContext,它为null。 如果用户控件中发生事件,如何访问DataContext?
下面是用户控制的代码。
public sealed partial class OrderItemsUserControl : UserControl
{
public OrderViewModel order
{
get { return this.DataContext as OrderViewModel; }
}
public OrderItemsUserControl()
{
this.InitializeComponent();
this.DataContextChanged += (s, e) => Bindings.Update();
}
private void OrderItemList_Loaded(object sender, RoutedEventArgs e)
{
order.OrderItems.CollectionChanged += (s, args) => ScrollToBottom();
}
private void ScrollToBottom()
{
ListScrollViewer.Measure(ListScrollViewer.RenderSize);
ListScrollViewer.ScrollToVerticalOffset(ListScrollViewer.ScrollableHeight);
}
}
由于UserControl似乎具有与View页面不同的dataContext,并且您说了“在datacontext中,我正在获取OrderItems”,因此删除方法“ public OrderViewModel order”并更改代码以消除顺序,例如:
private void OrderItemList_Loaded(object sender, RoutedEventArgs e)
{
OrderItems.CollectionChanged += (s, args) => ScrollToBottom();
}
假设OrderItems是在此viewModel中声明的有效引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.