Я чувствую, что это должно быть легко, но я провел последние несколько часов, пытаясь найти решения для этого, и, похоже, ничего не работает.
У меня есть объект в коде XAML, и я хочу связать одно из его свойств с объектом, который был создан в коде c #. Это моя стратегия до сих пор:
<setpwindows:ScalingWindow
...
>
<setpwindows:ScalingWindow.Resources>
<localwpf:ObjectProvider x:Key="locationProvider"/>
</setpwindows:ScalingWindow.Resources>
...
...
<DataGridTextColumn
Header="Code Out"
Binding="{Binding Source={StaticResource locationProvider}, Path=Obj.Name}"
/>
...
...
</setpwindows:ScalingWindow>
с ObjectProvider следующим образом:
class ObjectProvider : DependencyObject
{
private object _obj;
public object Obj
{
get { System.Diagnostics.Debug.WriteLine("Got object as " + _obj); return _obj; }
set { _obj = value; System.Diagnostics.Debug.WriteLine("Set object to " + _obj); }
}
public static readonly DependencyProperty ObjProperty = DependencyProperty.Register("Obj", typeof(object), typeof(ObjectProvider));
public ObjectProvider() {}
}
После того, как окно инициализировано, я устанавливаю Obj следующим образом:
WPFObjects.ObjectProvider locProv = this.FindResource("locationProvider") as WPFObjects.ObjectProvider;
locProv.Obj = _tempLocation;
Это, наконец, не дает мне ошибок связывания в окне вывода, но на самом деле ничего не связывает. Какой стандартный способ сделать это?