1
두 다음 내부 내 사용자 지정 컨트롤에 바인딩이 작동하지 않습니다 방법 :WPF, 사용자 지정 컨트롤 작업에 결합하는 두 가지 방법을 점점
public partial class ColorInputControl
{
public ColorInputControl()
{
InitializeComponent();
colorPicker.AddHandler(ColorPicker.SelectedColorChangedEvent,
new RoutedPropertyChangedEventHandler<Color>(SelectedColorChanged));;
colorPicker.AddHandler(ColorPicker.CancelEvent,
new RoutedPropertyChangedEventHandler<Color>(OnCancel));
}
public static readonly DependencyProperty SelectedColorProperty =
DependencyProperty.Register
("SelectedColor", typeof(Color), typeof(ColorInputControl),
new PropertyMetadata(Colors.Transparent, null));
public Color SelectedColor
{
get
{
return (Color)GetValue(SelectedColorProperty);
//return colorPicker.SelectedColor;
}
set
{
SetValue(SelectedColorProperty, value);
colorPicker.SelectedColor = value;
}
}
private void SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color> e)
{
SetValue(SelectedColorProperty, colorPicker.SelectedColor);
}
}
SelectedColor가에서 INotifyPropertyChanged 이벤트 제어 할 때를 발생시키는 속성에 바인딩되고있다 변경. 그러나 양방향 바인딩을 사용할 수는 없습니다. UI의 변경 사항이 데이터 소스에 유지됩니다. 그러나 데이터 소스에서 발생한 변경 사항은 UI에 반영되지 않습니다.
무엇을 놓쳤습니까? TIA.
XAML 바인딩을 표시하십시오. 그리고 SetValue에 대한 호출 외에도 DP의 setter에 코드가 없어야합니다 (WPF는 사용자의 setter를 사용하지 않으므로) – Timores