【发布时间】:2016-04-12 19:28:14
【问题描述】:
我想知道如何将我的 gridview 对象作为参数传递给我的 caliburn 微事件。
我试过了,它所做的只是将我的视图模型作为参数而不是对象本身传递。
<Setter Property="cal:Message.Attach" Value="[Event MouseDoubleClick] = [RunReport(LoanGrid)]"/>
<telerik:RadGridView x:Name="LoanGrid" ...../>
这是一种可能的解决方案,我必须添加一个 onclick 事件,但也许有更好的解决方案?
private void ReportGridView_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
(this.DataContext as LoanGridViewModel).RunReport(LoanGrid);
}
【问题讨论】:
-
向 ViewModel 发送控件不是处理问题的正确方法。 View Models 不应该知道任何特定的 UI 元素,因为理论上,您的 ViewModel 应该在 WPF 应用程序以及您的移动应用程序、Web 应用程序等中以相同的方式工作。告诉我们更多关于您的问题,也许是更好的解决方案会弹出。 :)
-
当然,我正在使用 Telerik 控件。我正在尝试使用 MVVM 导出我的网格视图。我有导出方法,但我需要 radgridview 对象
-
听起来像是一种行为。创建将注册到 RadGridView 的 DoubleClick 事件并将其导出到 excel 的行为。这样,您的 ViewModel 将不知道任何 UI 元素,而位于 UI 端的行为将知道您的 RadGridView 并能够执行您所需的所有逻辑。如果您需要示例,请告诉我。
-
@AlexPshul 一个例子将不胜感激 =)
-
将在几分钟内发布答案