在我的Silverlight项目中,我需要使用DataTemplateSelector。我在这里找到了一种实现此功能的方法(因为它没有出现在框架中):http://www.codeproject.com/KB/silverlight/SLTemplateSelector.aspx
这个方法在我代码的其他地方一直都能正常工作,但这次它不能工作。问题是TemplateSelector从未被调用过(我甚至试图在构造函数中设置一个断点,但从未命中)。你能在我的代码中看到一个问题吗?我使用了一个调试转换器,可以看到我的ListBox的ItemsSource设置正确。
提前感谢!
XAML:
<ListBox Name="DestinationsList" Grid.Column="2" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<helper:TargetTemplateSelector Content="{Binding}">
<helper:TargetTemplateSelector.FirstTemplate>
<DataTemplate>
<TextBlock Text="Test1" />
</DataTemplate>
</helper:TargetTemplateSelector.FirstTemplate>
<helper:TargetTemplateSelector.SecondTemplate>
<DataTemplate>
<TextBlock Text="Test2" />
</DataTemplate>
</helper:TargetTemplateSelector.SecondTemplate>
</helper:TargetTemplateSelector>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>TemplateSelector类:
public class TargetTemplateSelector : DataTemplateSelector
{
public DataTemplate FirstTemplate { get; set; }
public DataTemplate SecondTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
MyClass1 target = item as MyClass1;
if (target != null)
{
if (target.Profile is MyClass2)
{
return this.FirstTemplate;
}
else if (target.Profile is MyClass3)
{
return this.SecondTemplate;
}
else
{
throw new NotImplementedException();
}
}
return base.SelectTemplate(item, container);
}
}发布于 2011-02-04 22:18:40
太傻了..。我会找借口今天是星期五..。
问题是绑定到列表框的值不是一个集合...
你可以开始扔石头..。
https://stackoverflow.com/questions/4898355
复制相似问题