MVVM模式下,自定义用户控件不执行COMMAND的原因
2013-08-01 11:17
323 查看
今日遇到一个问题,在MVVM模式下,给一个自定义用户控件添加一个mapeventtocommand,command不执行。经过分析,原因是自定义用户控件给了静态资源绑定了datacontext的原因。
错误代码:
<View:TaskDetailContainer Background="Black" Grid.Row="2">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<TriggerActions:MapEventToCommand Command="{Binding LoadTaskDetailTaskCommand,Mode=TwoWay}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</View:TaskDetailContainer>
taskdetail用户控件中给了静态资源绑定了viewmodel
<UserControl.Resources>
<ViewModel:TaskDetialContainerViewModel x:Key="DataContext"/>
</UserControl.Resources>
<UserControl.DataContext>
<Binding Source="{StaticResource DataContext}" />
</UserControl.DataContext>
解决办法: 去掉自定义控件的datacontext.
错误代码:
<View:TaskDetailContainer Background="Black" Grid.Row="2">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<TriggerActions:MapEventToCommand Command="{Binding LoadTaskDetailTaskCommand,Mode=TwoWay}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</View:TaskDetailContainer>
taskdetail用户控件中给了静态资源绑定了viewmodel
<UserControl.Resources>
<ViewModel:TaskDetialContainerViewModel x:Key="DataContext"/>
</UserControl.Resources>
<UserControl.DataContext>
<Binding Source="{StaticResource DataContext}" />
</UserControl.DataContext>
解决办法: 去掉自定义控件的datacontext.
相关文章推荐
- saucer(思归)解决的关于:页面A.aspx 动态载入用户自定义控件a.ascx,但a.ascx中的按钮提交后,不执行按钮的事件,而是直接刷新页面
- 让自定义用户控件中代码的执行分成“设计时”和“运行时”
- ActiveReports工作总结12——用Designer控件实现用户自定义报表印刷
- ASP.NET 用户控件自定义属性、方法、事件
- 灵活的执行副本保护和自定义许可策略控件CrypKey SDK
- 网络(4):socket中用户自定义缓冲区的原因及方式
- asp.net 用户自定义控件自定义属性添加
- Linux下执行useradd命令添加用户时提示:"command not found"
- sudo切换用户之后执行java命令出错:sudo: java: command not found
- 给自定义服务器控件或用户控件增加事件处理
- Windows Phone 7 MVVM模式通讯方式之实现Command
- 在基于对话框的应用中执行空闲状态处理(比如用ON_UPDATE_COMMAND_UI更新控件)
- 自定义android用户控件,使用回调函数实现自定义事件
- 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- 稳扎稳打Silverlight(52) - 4.0绑定之 ICommand 命令和 MVVM 模式
- 稳扎稳打Silverlight(52) - 4.0绑定之 ICommand 命令和 MVVM 模式
- 稳扎稳打Silverlight(52) - 4.0绑定之 ICommand 命令和 MVVM 模式
- 稳扎稳打Silverlight(52) - 4.0绑定之 ICommand 命令和 MVVM 模式
- C#.net用户自定义控件。