Я хочу установить ItemTimplate в соответствии с некоторым свойством.
Я только что создал разметку, где я установил ItemTemplate так:
<controls:Panorama Title="Some Title" ItemsSource="{Binding Modules}" ItemTemplate="{Binding Id, Converter={StaticResource ControlTemplateConverter}}">
<controls:Panorama.Background>
<ImageBrush ImageSource="PanoramaBackground.png"/>
</controls:Panorama.Background>
</controls:Panorama>
И реализовать ControlTemplateConverter следующим образом:
public class ControlTemplateConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
StringBuilder sbTemp = new StringBuilder();
sbTemp.Append("<DataTemplate ");
sbTemp.Appen("xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' ");
sbTemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
sbTemp.Append("<StackPanel>");
sbTemp.Append("<TextBlock Text=\"News News\" />");
sbTemp.Append("</StackPanel>");
sbTemp.Append("</DataTemplate>");
return (DataTemplate)XamlReader.Load(sbTemp.ToString());
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Я зарегистрировал конвертер:
<UserControl.Resources>
<converter:ControlTemplateConverter x:Key="ControlTemplateConverter" />
</UserControl.Resources>
Но когда я устанавливаю точку останова в ControlTemplateConverter.Convert, она никогда не останавливается в отладке.
ItemSource загружается каждый раз.
В чем дело?
Спасибо.