Я работаю над стильным элементом управления ColorPicker, и он работает хорошо, но у меня проблемы с повторной инициализацией.
У меня DP под названием BaseBrushes, который выглядит так
public ObservableCollection<Brush> BaseBrushes
{
get { return (ObservableCollection<Brush>)GetValue(BaseBrushesProperty); }
set { SetValue(BaseBrushesProperty, value); }
}
// Using a DependencyProperty as the backing store for BaseBrushes. This enables animation, styling, binding, etc...
public static readonly DependencyProperty BaseBrushesProperty =
DependencyProperty.Register("BaseBrushes", typeof(ObservableCollection<Brush>), typeof(ColorPicker), new UIPropertyMetadata(new ObservableCollection<Brush>()));
и на сайте XAML, Я установил это так
<gc:ColorPicker Margin="0,15,0,0" SelectedBrush="#FF1E65C4" PaletteSize="6" StepSize="25">
<gc:ColorPicker.BaseBrushes>
<SolidColorBrush Color="Red"/>
<SolidColorBrush Color="Blue"/>
<SolidColorBrush Color="Orange"/>
<SolidColorBrush Color="Green"/>
<SolidColorBrush Color="Yellow"/>
<SolidColorBrush Color="Black"/>
<SolidColorBrush Color="White"/>
</gc:ColorPicker.BaseBrushes>
</gc:ColorPicker>
Моя проблема в том, что теперь, каждый раз, когда я открываю окно с этим ColorPicker, он снова добавляет все кисти в список, поэтому во втором представлении у меня есть 14 цветов, а не7.
Я могу очистить метод List in BeginInit (), но я не думаю, что это правильное решение.Я думаю, что это ненормальное поведение, поэтому я ничего не вижу.
Пожалуйста, если кто-нибудь знает что-нибудь, помогите мне
С наилучшими пожеланиями Дима