我有一个ItemsControl,其ItemsSource绑定到一个集合,另外我有一个ItemTemplateSelector集。
它运行良好,但DataTemplateSelector只允许我访问ItemsSource绑定的项目,但是我想使用Parents DataContext来决定应该使用哪个项目模板。
这是否可以在SL4中实现?
如果是这样,怎么可能实现?
答案 0 :(得分:1)
感谢您对@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;
}
答案 1 :(得分:0)
是的。
将您的布局根命名为“LayoutRoot”,然后您可以
<TextBlock Text="{Binding DataContext.SomeTextInParent, ElementName=LayoutRoot}" />
在商品模板中。