Я хочу использовать палитру цветов в своем приложении wpf, и на странице этого кодового проекта я увидел красивый. Элемент управления работает нормально, пока я не хочу подключить элемент управления к модели представления.
Я создал небольшую тестовую программу с этой моделью представления:
public class ColorViewModel : ViewModelBase
{
public ColorViewModel()
{
LineColor = Brushes.Yellow;
}
SolidColorBrush _brushColor;
public SolidColorBrush LineColor
{
get { return _brushColor; }
set
{
_brushColor = value;
RaisePropertyChanged(() => LineColor);
}
}
}
У тестовой программы есть текстовое поле и элементы управления палитрой цветов:
<StackPanel Orientation="Horizontal">
<TextBlock Text="Please Select a Color" FontWeight="Bold" Margin="10"
Foreground="{Binding Path=LineColor, UpdateSourceTrigger=PropertyChanged}"/>
<vw:ColorPickerControlView x:Name="ForeColorPicker" Margin="10"
CurrentColor="{Binding Path=LineColor, UpdateSourceTrigger=PropertyChanged }"/>
</StackPanel>
В загруженном событии главного окна в моем тестовом приложении я установил viewmodel для datacontext следующим образом:
DataContext = new ColorViewModel();
Проблема в том, что я не могу связать свойство LineColor viewmodel со свойством CurrentColor ColorPickerControlView. Свойство CurrentControl для ColorPickerControlView выглядит нормально. Конструктор выглядит так:
public ColorPickerControlView()
{
this.DataContext = this;
InitializeComponent();
CommandBindings.Add(new CommandBinding(SelectColorCommand, SelectColorCommandExecute));
}
В конструкторе UserControl есть строка this.DataContext = this; Я прочитал, что необходимо связать свойства зависимости. Должен ли я переопределить эту строку, когда я устанавливаю свою viewmodel для datacontext, и поэтому я не могу привязать свойство CurrentColor? Есть ли обходной путь? Или я сделал еще одну ошибку?