Silverlight 4.0 Silverlight4数据模板
我有一个ItemsControl,它的ItemsSource绑定到一个集合,另外还有一个ItemTemplateSelector集 它工作得很好,但是DataTemplateSelector只允许我访问ItemsSource绑定的项,但是我想使用父DataContext来决定应该使用哪个项模板 这在SL4中可以实现吗 如果是这样的话,如何实现呢?是的 将布局根命名为“LayoutRoot”,然后可以执行以下操作Silverlight 4.0 Silverlight4数据模板,silverlight-4.0,datatemplate,Silverlight 4.0,Datatemplate,我有一个ItemsControl,它的ItemsSource绑定到一个集合,另外还有一个ItemTemplateSelector集 它工作得很好,但是DataTemplateSelector只允许我访问ItemsSource绑定的项,但是我想使用父DataContext来决定应该使用哪个项模板 这在SL4中可以实现吗 如果是这样的话,如何实现呢?是的 将布局根命名为“LayoutRoot”,然后可以执行以下操作 <TextBlock Text="{Binding DataContext.S
<TextBlock Text="{Binding DataContext.SomeTextInParent, ElementName=LayoutRoot}" />
在您的项目模板中。感谢您的回复@Xin,但我通过执行以下操作解决了我的问题
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
DataTemplate dt = null;
switch ((DataContext as PlanViewModel).Plan.Status)
{
case Infrastructure.Services.Web.PlanStatus.Appraisal:
dt = (DataTemplate)this.Resources["Appraisal"];
break;
case Infrastructure.Services.Web.PlanStatus.Maintenance:
dt = (DataTemplate)this.Resources["Maintenance"];
break;
case Infrastructure.Services.Web.PlanStatus.Setting:
dt = (DataTemplate)this.Resources["Setting"];
break;
}
itemsControl1.ItemTemplate = dt;
}
感谢您的回复,但这如何让我决定应该选择什么样的模板呢?您能为我提供更多信息说明为什么需要这个DataTemplateSelector吗?或者,您可以只使用一个具有不同内部网格的模板,然后根据您的条件切换可见性。是的,这确实有效。我的想法是以mvvm的方式进行,不需要任何代码