C# 无法将ObjectContext从DataContext绑定到自定义附加属性

C# 无法将ObjectContext从DataContext绑定到自定义附加属性,c#,wpf,binding,attached-properties,attachedbehaviors,C#,Wpf,Binding,Attached Properties,Attachedbehaviors,我有附属财产 public static ObjectContext GetObjectContext(DataGrid obj) { return (ObjectContext)obj.GetValue(ObjectContextProperty); } public static void SetObjectContext(DataGrid obj, ObjectContext value) { obj.SetValu

我有附属财产

    public static ObjectContext GetObjectContext(DataGrid obj)
    {
        return (ObjectContext)obj.GetValue(ObjectContextProperty);
    }

    public static void SetObjectContext(DataGrid obj, ObjectContext value)
    {
        obj.SetValue(ObjectContextProperty, value);
    }

    public static readonly DependencyProperty ObjectContextProperty =
        DependencyProperty.RegisterAttached("ObjectContext", typeof(ObjectContext), typeof(FilterableGrid));
我还有一个ViewModel,它的Context属性设置为正确的ObjectContext(通过调试器检查)

这个XAML代码:

<DataGrid AutoGenerateColumns="False" Name="gridOrders"
              local:FilterableGrid.ObjectContext="{Binding Context}" local:FilterableGrid.IsFilterableGrid="True">
上下文变量总是以null结尾。尽管网格的DataContext不为null并指向正确的对象(ViewModel)

有什么想法吗?我似乎在这件事上失去理智了


Edit:我做了更多的调查,如果我绑定
local:FilterableGrid.IsFilterableGrid=“{Binding IsFilterable}”
它工作得很好。但是
local:FilterableGrid.ObjectContext=“{Binding Context}”
就是不行!也许这与传递的值的类型有关(ObjectContext而不是string,或者说bool,这是基本类型?)

我最终解决了这个问题,甚至想知道是什么起到了作用-似乎这是.NET中的一个bug,或者可能是VS

我所做的是:向RegisterAttached调用添加一些属性元数据,并添加OnChanged委托。之后,它才开始工作(正确绑定)。然后,当我从RegisterAttached call中删除属性元数据时,它继续工作

所以我真的不知道它是什么,但现在它起作用了

ObjectContext context = FilterableGrid.GetObjectContext(sourceGrid);