Znalazłem sposób Aby to zrobić, ale jest dość brzydki i prawdopodobnie niezbyt szybki ... Zasadniczo chodzi o utworzenie powiązania z podaną ścieżką i zastosowanie go do właściwości obiektu zależności. W ten sposób wiązania wykonuje całą pracę od pobierania wartości:
public static class PropertyPathHelper
{
public static object GetValue(object obj, string propertyPath)
{
Binding binding = new Binding(propertyPath);
binding.Mode = BindingMode.OneTime;
binding.Source = obj;
BindingOperations.SetBinding(_dummy, Dummy.ValueProperty, binding);
return _dummy.GetValue(Dummy.ValueProperty);
}
private static readonly Dummy _dummy = new Dummy();
private class Dummy : DependencyObject
{
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(object), typeof(Dummy), new UIPropertyMetadata(null));
}
}
można podać przykład jak chcesz to wykorzystać ? – Rachel