Связанное с WPF привязка данных свойств

Я пытаюсь использовать привязку с прикрепленным свойством. Но он не может заставить его работать.

public class Attached { public static DependencyProperty TestProperty = DependencyProperty.RegisterAttached("TestProperty", typeof(bool), typeof(Attached), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Inherits)); public static bool GetTest(DependencyObject obj) { return (bool)obj.GetValue(TestProperty); } public static void SetTest(DependencyObject obj, bool value) { obj.SetValue(TestProperty, value); } } 

Код XAML:

       

И ошибка привязки:

 System.Windows.Data Error: 40 : BindingExpression path error: '(local:Attached.Test)' property not found on 'object' ''StackPanel' (Name='f')'. BindingExpression:Path=(local:Attached.Test); DataItem='StackPanel' (Name='f'); target element is 'CheckBox' (Name=''); target property is 'IsChecked' (type 'Nullable`1') 

Верьте или нет, просто добавьте Path= и используйте скобки при привязке к прикрепленному свойству:

 IsChecked="{Binding Path=(local:Attached.Test), Mode=TwoWay, RelativeSource={RelativeSource Self}}" 

Кроме того, ваш вызов RegisterAttached должен пройти в «Тест» как имя свойства, а не «TestProperty».

Я бы предпочел опубликовать это как комментарий к ответу Кента, но так как мне не хватает репутации для этого … просто хотел указать, что с WPF 4.5 добавление Path= больше не требуется. Однако имя прикрепленного свойства все равно должно быть завершено круглыми скобками.

  • Связывание Datagrid в WPF
  • Как связать List с элементом управления DataGridView?
  • DataTrigger, где значение НЕ равно нулю?
  • WinForms DataGridView - привязка к объекту со свойством списка (переменное число столбцов)
  • «Элемент коллекции должен быть пустым перед использованием ItemsSource».
  • Ошибка WPF: не удается найти управляющий элемент FrameworkElement для целевого элемента
  • Связывание WPF DataGrid с DataTable с использованием TemplateColumns
  • WPF StringFormat = {0: C}, показывающий как доллары
  • Загрузка файлов с Java-клиента на HTTP-сервер
  • WPF DataGrid: свойство CanContentScroll, вызывающее нечетное поведение
  • В .NET 4.0 привязка OneWayToSource
  • Давайте будем гением компьютера.