[英]How to stop my WPF usercontrol from loading, if i have basecontrol
我有一个BaseControl,其中几乎所有的控件都继承自。
现在我正致力于安全性,我想阻止用户查看某些项目,如果他们没有访问权限。
我能够在基本控件的Loaded
事件上这样做,但这太晚了,这意味着整个控件被渲染,然后被替换。 我想在渲染之前替换它
这是我的代码示例:
public class BaseControl : UserControl
{
public BaseControl()
{
this.Loaded +=BaseControl_Loaded;
}
private void BaseControl_Loaded(object sender, RoutedEventArgs e)
{
if (!userHasAccess)
{
this.Content = new AccessDenied();
}
}
}
上面的代码工作得很好,但有点太晚了,有没有办法可以在Loaded
事件之前做到这一点?
您想要覆盖OnInitialized
,其中在Render
发生之前正在设置构造函数和属性。
protected override void OnInitialized(EventArgs e)
{
if (!userHasAccess)
{
this.Content = new AccessDenied();
}
base.OnInitialized(e);
}
更多信息可以在这里找到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.