У меня есть TreeView
, и у каждого TreeViewNode
есть объект в свойстве Tag
. Когда узел в древовидном представлении выбран, я хочу, чтобы DataGrid
заполнялся именем и значением всех полей объекта, полученных с помощью отражения. Я не могу понять, как сделать это с помощью привязки данных wpf. Примеров того, как именно вы связываете DataGrid
с помощью простых методов, очень мало, и я также использую функцию преобразования.
Пока у меня есть метод получения нужных мне данных от одного объекта:
internal static IEnumerable<Tuple<string, object>> GetFieldInfo(object o)
{
return
from FieldInfo info in o.GetType().GetFields()
select Tuple.Create(info.Name, info.GetValue(o));
}
и дерево и сетка данных в xaml:
<TreeView Name="objectList" />
<DataGrid Name="objectData" />
Я не могу понять правильные заклинания DataBinding, чтобы получить свойство ((TreeViewNode)objectList.SelectedItem).Tag
через метод GetFieldInfo
и свойство objectData.ItemsSource
.