使用caliburn.micro时,在表单中查找控件的最佳方法是什么?

时间:2010-12-31 19:19:22

标签: c# silverlight user-controls find caliburn.micro

使用Caliburn.Micro时,有没有一种方法可以从ViewModel中找到表单中的命名控件? IoC是否提供了获取表格的方法?

2 个答案:

答案 0 :(得分:5)

您可以在视图模型中覆盖AttachViewOnViewLoadedScreen类型的一部分),Caliburn.Micro会将视图传递给,例如按钮控件:

public override void AttachView(object view, object context)
{
  base.AttachView(view, context);

  var frameworkElement = view as FrameworkElement;

  if (frameworkElement == null)
  {
    return;
  }

  var button = frameworkElement.FindName("myButton") as Button;

  if (button == null)
  {
    return;
  }

  // access button control here
}

答案 1 :(得分:1)

您也可以从视图模型中调用GetView()。然后搜索控件或按名称访问它。