Silverlight:代码隐藏中的ViewModel触发器函数

Silverlight:代码隐藏中的ViewModel触发器函数,silverlight,mvvm,ria,Silverlight,Mvvm,Ria,我的Silverlight应用程序和MVVM模式的使用有点问题 在我看来,我有一个数据网格。ItemsSource通常会绑定到ViewModel,但在我的特定情况下,我需要列是动态的,并且我的items集合包含每个项的字典,因此我没有要显示的类属性。我的解决方案是在codebehind中生成所有这些,因为DataGrid的实际设计与我的ViewModel无关。这是我能想到的唯一解决方案,因为这些列无法进行数据绑定 这一切我都要做。我的问题是,我正在使用RIA,视图不知道items集合何时完成加载

我的Silverlight应用程序和MVVM模式的使用有点问题

在我看来,我有一个数据网格。ItemsSource通常会绑定到ViewModel,但在我的特定情况下,我需要列是动态的,并且我的items集合包含每个项的字典,因此我没有要显示的类属性。我的解决方案是在codebehind中生成所有这些,因为DataGrid的实际设计与我的ViewModel无关。这是我能想到的唯一解决方案,因为这些列无法进行数据绑定

这一切我都要做。我的问题是,我正在使用RIA,视图不知道items集合何时完成加载。我通过在视图上放置一个普通按钮来触发codebehind函数来尝试我的设计,但显然这个解决方案是不好的。我需要我的codebehind函数在我的项目集合完成加载后立即运行


我可以让我的codebehind听ViewModel吗?

我感觉你在什么地方把事情搞砸了

对于您的问题,我认为您可以通过在ViewModel中设置事件来解决它。 在视图的view_Loaded事件中订阅该事件,并调用处理程序中的codebehind函数


我建议你重新检查一下你的设计,看看这是否真的有必要。

我感觉你把事情搞砸了

对于您的问题,我认为您可以通过在ViewModel中设置事件来解决它。 在视图的view_Loaded事件中订阅该事件,并调用处理程序中的codebehind函数


我建议您重新检查您的设计,看看这是否真的有必要。

我理解您的意思,我们曾经不得不做同样的事情来生成silverlight中的PIA随机列,因为您需要某种具有动态属性集的对象

我看你已经找到了字典的解决办法。我的建议是,这不是最干净的解决方案,但它更干净,然后把东西放在代码后面,就是将它添加到转换器中。然后将集合绑定到itemscontrol的itemssource,然后在引发list propertychanged时,在转换器中组装datagrid

小例子:

<ItemsControl Grid.Row="1" ItemsSource="{Binding theListOfEntities, Converter={StaticResource theconverter}}"/>

我理解你的意思,我们曾经不得不做同样的事情来生成随机列,这是silverlight中的PIA,因为你需要某种具有动态属性集的对象

我看你已经找到了字典的解决办法。我的建议是,这不是最干净的解决方案,但它更干净,然后把东西放在代码后面,就是将它添加到转换器中。然后将集合绑定到itemscontrol的itemssource,然后在引发list propertychanged时,在转换器中组装datagrid

小例子:

<ItemsControl Grid.Row="1" ItemsSource="{Binding theListOfEntities, Converter={StaticResource theconverter}}"/>