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

dna*_*a86 1 c# silverlight user-controls find caliburn.micro

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

dev*_*tal 5

您可以覆盖AttachViewOnViewLoaded在视图模型(Screen类型的一部分)中,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
}
Run Code Online (Sandbox Code Playgroud)