我正在尝试在另一个视图中使用coproject工具栏。不能让它工作

时间:2011-10-28 21:48:51

标签: caliburn.micro

我正在尝试在另一个视图(ActiveItem)中使用coproject工具栏类型的视图。 Coproject定义了两个内容控件。但我希望工具栏嵌套在另一个视图中。基本上是CRUD表单(视图)的一部分,所以我可以像许多其他表单/视图中的用户控件一样使用它。我试图在我的视图中包含Contentcontrol。但工具栏nevers出现了。它抱怨找不到Project.Views.Form.tbar。如何强制它使用工具栏视图但使用当前的viewmodel FormViewModel。任何有关自定义View定位器的帮助都会非常有用。

假设有两种观点:FormView&工具栏(工具栏应使用FormViewModel)

FormView.xaml :(我在这里使用工具栏视图)

<UserControl x:Class="Project.Views.FormView"
  <Grid>
      <Othercontrols>
      <ContentControl x:Name="Toolbar" cal:View.Model="{Binding}" cal:View.Context="tbar" />
      <OtherControls>
  </Grid>
</UserControl>

Toolbar.xaml:

<UserControl x:Class="Project.Views.Toolbar">
  <Border>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Height="28" Width="135">
       <local:ImageButton x:Name="Add" ImageName="Pen" ToolTipService.ToolTip="Add" />
       <local:ImageButton x:Name="Edit" ImageName="Pen" ToolTipService.ToolTip="Edit" />
       <local:ImageButton x:Name="Save" ImageName="Save" ToolTipService.ToolTip="Save"  />
       <local:ImageButton x:Name="Delete" ImageName="Close" ToolTipService.ToolTip="Delete" />
       <local:ImageButton x:Name="Cancel" ImageName="Undo" ToolTipService.ToolTip="Cancel"  />
   </StackPanel>
  </Border>
</UserControl>

正如我之前所说,工具栏应该使用使用它的父视图模型。在上面的例子中,它应该使用FormViewModel。 FormViewModel将具有“添加”,“编辑”等方法

请让我知道如何让这个工作? 非常感谢。

1 个答案:

答案 0 :(得分:0)

如何使用cal:View.Model =“{Binding Parent}”?前提是子ViewModel的此属性已填充正确的父ViewModel。