首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将命令绑定到加载的视图模型

将命令绑定到加载的视图模型
EN

Stack Overflow用户
提问于 2020-11-05 20:48:04
回答 1查看 102关注 0票数 0

我的MainMenuView中有一个部分,它在ContentControl中加载选定的视图模型。DataContext of MainMenuViewMainMenuViewModel

我可以将主菜单中的按钮绑定到SelectedViewModel上的命令,还是必须引发事件?

代码语言:javascript
运行
复制
<Fluent:Ribbon>
   <!--Userdata-->
   <Fluent:RibbonTabItem Header="Data" x:Name="TabVerm" Group="{Binding ElementName=VermittlerGroup}">
      <Fluent:RibbonGroupBox Header="Data">
         <Fluent:Button" Command="{Binding Path=DataContext.VermittlerSave, ElementName=VermittlerView}" Header="Save" LargeIcon="{iconPacks:FontAwesome Kind=SaveRegular,Width=30,Height=25}"></Fluent:Button>
         <Fluent:Button Header="Cancel" LargeIcon="{iconPacks:FontAwesome Kind=UndoAltSolid,Width=30,Height=25}"></Fluent:Button>
      </Fluent:RibbonGroupBox>
      <Fluent:RibbonGroupBox Header="Activate">
         <Fluent:Button Header="Aktivate User" LargeIcon="{iconPacks:FontAwesome Kind=StackExchangeBrands,Width=30,Height=25}"></Fluent:Button>
         <Fluent:Button  Header="New User" LargeIcon="{iconPacks:FontAwesome Kind=PlusCircleSolid,Width=30,Height=25}"></Fluent:Button>
      </Fluent:RibbonGroupBox>
   </Fluent:RibbonTabItem>
</Fluent:Ribbon>
<Grid Grid.Row="1">
   <ContentControl Grid.Row="1" Content="{Binding SelectedViewModel}"/>
</Grid>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-06 07:16:28

您应该能够通过给您的ContentControl命名来做到这一点。

代码语言:javascript
运行
复制
<ContentControl Grid.Row="1" x:Name="MyContentControl" Content="{Binding SelectedViewModel}"/>

然后,您可以引用它及其在命令绑定中保存视图模型的Content属性,例如:

代码语言:javascript
运行
复制
<Fluent:Button" Command="{Binding Content.VermittlerSave, ElementName=MyContentControl}" Header="Save" LargeIcon="{iconPacks:FontAwesome Kind=SaveRegular,Width=30,Height=25}"/>

当然,这仅适用于任何选定的视图模型都包含绑定命令。

绑定的替代方法是与事件通信,例如使用大多数MVVM框架(如Caliburn.Micro或Prism )提供的Caliburn.Micro,或者您可以查看Prism的CompositeCommand方法,它允许您创建其他命令可以附加到的命令。您可以为菜单创建复合命令,并动态地将实际命令与所选视图模型连接或分离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64705056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档