2010-10-13 4 views
1

У меня есть очень простая радиальная панель с несколькими свойствами зависимостей, как так:Используйте Radial панели в Listbox, выбрасывая исключение VisualTree Single Element

public static readonly DependencyProperty RadiusProperty = DependencyProperty.Register("Radius", typeof(double), typeof(CircularPanel), new PropertyMetadata(50.0, new PropertyChangedCallback(RadiusChanged))); 

private static void RadiusChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ((CircularPanel)sender).Refresh(); } 

Проблема заключается в том, что всякий раз, когда я задаю эту радиальную панель как ItemsPanel из я получаю исключение:

VisualTree of ItemsPanelTemplate должен быть единственным элементом.

Это, как я установил ItemsPanel в XAML:

<ItemsPanelTemplate x:Key="ItemsPanelTemplate2"> 
     <WpfApplication7:CircularPanel d:LayoutOverrides="Width, Height" AngleItem="{Binding Angle}" AnimationDuration="75" Radius="0" InitialAngle="90"/> 
</ItemsPanelTemplate> 

<ListBox ItemsPanel="{StaticResource ItemsPanelTemplate2}" ItemContainerStyle="{StaticResource ListBoxItemStyle1}" ItemsSource="{Binding Hosts, Mode=OneWay}" > 

Если удалить функцию PropertyChangedCallback свойств зависимостей, панель работает, но так как я не могу обновить панель, всякий раз, когда я изменить коллекцию связанного в список, все элементы рисуются поверх друг друга, а не круговым способом. Это в WPF. Я пробовал в Silverlight, и там нет проблем.

Цените свою помощь. Спасибо

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^