Silverlight 我应该为此使用触发器或行为吗?
我有一个抽象对象名为applicator,还有两种不同类型的对象从applicator继承而来,分别是Business和Individual。我有三个类,看起来像这样:Silverlight 我应该为此使用触发器或行为吗?,silverlight,xaml,silverlight-4.0,silverlight-toolkit,Silverlight,Xaml,Silverlight 4.0,Silverlight Toolkit,我有一个抽象对象名为applicator,还有两种不同类型的对象从applicator继承而来,分别是Business和Individual。我有三个类,看起来像这样: public abstract class Applicant { ... } public class Individual : Applicant { ... } public class Business : Applicant { ... } 现在在DataGrid中,我想显示申请者对象的所有细节。当您选择
public abstract class Applicant
{
...
}
public class Individual : Applicant
{
...
}
public class Business : Applicant
{
...
}
现在在DataGrid中,我想显示申请者对象的所有细节。当您选择一行时,我希望以内部网格的形式显示业务或个人的详细信息。像这样的
<DataGrid>
<DataGrid.Columns>
<!--Show different columns -->
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<!--Show if Individual -->
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" ... />
<DataGridTextColumn Header="Last Name" ... />
</DataGrid.Columns>
</DataGrid>
<!--Show if business -->
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Business Name" ... />
<DataGridTextColumn Header="Tax id" ... />
</DataGrid.Columns>
</DataGrid>
</DataGrid.RowDetailsTemplate>
</DataGrid>
现在我不确定我是否需要使用触发器或行为来实现这一点?谢谢大家的帮助!仅供参考,我正在使用Silverlight 4.0和Prism。我不会使用任何一种:
- 有两个视图(网格)-一个渲染单个详细信息,另一个渲染业务详细信息李>
- 在RowDetailsTemplate内定义ContentControl并将其设为区域李>
- 然后在主栅格的ViewModel中处理所选应用程序更改,以便根据所选应用程序的类型在区域中激活适当的视图李>
数据模板
,您需要动态更改它们。我发现了一篇关于这个主题的博客帖子和silverlight.net论坛帖子:和
第一个使用一些非常简单的代码隐藏逻辑,论坛中的一个使用
IValueConverter
做同样的事情,这听起来是个好主意。我应该把SelectedApplicationEvent放在哪里,因为现在我有一个这样的申请人集合ObservableCollection?也许我甚至可以使用LoadingRowDetails来代替?如果您在viewmodel世界中,那么您就不会有事件-您应该将网格的SelectedItem绑定到viewmodel中的CurrentApplication属性。因此,当selection更改时,将自动调用属性上的set方法;但是获取异常“区域管理器不包含myRegion区域。”