Я привязываю TreeView к XMLDataSource, привязки данных создаются автоматически, и XML выглядит следующим образом: -
<Passengers>
<Passenger>
<PassengerName>Name1</PassengerName>
</Passenger>
<Passenger>
<PassengerName>Name2</PassengerName>
</Passenger>
<Passenger>
<PassengerName>Name3</PassengerName>
</Passenger>
</Passengers>
TreeView правильно отображает XML, но когда я нажимаю на узел, и событие SelectedNodeChanged запускает SelectedNode.DataPath всегда является путем к первому пассажиру в списке, независимо от того, на каком пассажирском узле я нажимаю.
Кто-нибудь знает, как получить путь к данным фактического узла, на который я нажимаю?





отсюда я думаю, что он не может отличить пассажирские узлы. им не хватает какого-то идентификатора. проверяя справку по привязке данных treeview, сейчас я вернусь.
В справке говорится, что вы можете настроить, как и что вы привязываете из своего xmldatasource к каким свойствам узла. может случиться так, что вы пропустили значение и свойства навигации в привязке.
Я полагаю, что узлы дерева используют значение, которое должно быть предоставлено для навигации по следу пути значения. Только тогда вы сможете перемещаться по тропе. Кроме того, не уверен, но я думал, что XmlDataSource нравится использовать атрибуты вместо дочерних элементов для описания значений и сущностей, так что это тоже может быть проблемой ...
Вероятно, вам нужно идентифицировать каждый узел с помощью идентификатора
<Passengers>
<Passenger Id = "Passenger1">
<PassengerName>Name1</PassengerName>
</Passenger>
<Passenger Id = "Passenger2">
<PassengerName>Name2</PassengerName>
</Passenger>
<Passenger Id = "Passenger3">
<PassengerName>Name3</PassengerName>
</Passenger>
</Passengers>