2010-08-13 4 views
1

У меня есть файл ресурсов xaml с некоторыми определениями DataRemplate s. В одном DataRemplate У меня есть пограничный фон, связанный с свойством DataObject.Как изменить фон границы с помощью colorpicker

У меня также есть пользовательский элемент управления ColorPicker, который является частью границы ContextMenu.

Теперь я пытаюсь привязать свойство зависимости «CustomColor» от ColorPicker к свойству color/background границы. Как это сделать?

Должен ли я привязываться к свойству «Фон» на границе или к свойству «Цвет» моего объекта данных?

<Border x:Name="projectRect" 
     Grid.Column="1" 
     Grid.ColumnSpan="1" 
     HorizontalAlignment="Right" 
     Background="{Binding Path=Color, Converter={StaticResource colorConverter}}" 
     BorderBrush="#737377" 
     BorderThickness="1" 
     CornerRadius="4" 
     IsHitTestVisible="True"> 
    <TextBlock Text="{Binding Path=ProjectId}" 
       VerticalAlignment="Center" 
       Margin="4" /> 
    <Border.ContextMenu> 
     <ContextMenu Name="colorPopup" 
        StaysOpen="True" 
        Style="{StaticResource ColorPickerContextMenuStyle}"> 
      <Border Background="GhostWhite"> 
       <local:CustomColorPicker x:Name="cp" 
             CustomColor="{Binding Path=Color, Converter={StaticResource colorConv}}" 
             diag:PresentationTraceSources.TraceLevel="High" /> 
      </Border> 
     </ContextMenu> 
    </Border.ContextMenu> 
</Border> 

Спасибо за ваши ответы.

ответ

0

Оба свойства должны быть привязаны к цвету в вашем объекте данных, чтобы убедиться, что граница обновлена, если ColorPicker изменяет свойство, которое необходимо реализовать в объекте данных INotifyPropertyChanged.

Как вы выполняете привязки, зависит от вашего контекста. В большинстве случаев объекты данных находятся в DataContext вашего соответствующего объекта, но с ItemsControls и т. П. Это может быть не так. Для общей помощи с привязками см. Data Binding Overview.

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