silverlight 4 treeview молча выбрасывает ошибки привязки - PullRequest
0 голосов
/ 11 февраля 2011

Итак, у меня есть древовидный элемент управления silverlight, связанный с указанным ниже типом, я установил DataContext моей страницы для экземпляра моей ViewModel, который имеет свойство Divisions, представляющее собой список RmDivision объектов.

public class RmDivision
    {
        public RmDivision()
        {
            SubDivisions = new ObservableCollection<RmDivision>();
        }
        public string Type { get; set; }
        public string Name { get; set; }
        public IList<RmDivision> SubDivisions { get; set; }
    }

А затем его граница выглядит следующим образом:

 <sdk:TreeView HorizontalAlignment="Stretch" Name="treeBranches" 
                          ItemsSource="{ Binding Divisions }"  VerticalAlignment="Stretch" SelectedValuePath="Division" Grid.Row="0" SelectedItemChanged="treeBranches_SelectedItemChanged">
                <sdk:TreeView.ItemTemplate>
                    <sdk:HierarchicalDataTemplate  ItemsSource="{Binding SubDivisions}">
                        <TextBlock Text="{Binding Name}" ToolTipService.ToolTip="{Binding Type}" />
                    </sdk:HierarchicalDataTemplate>
                </sdk:TreeView.ItemTemplate>
            </sdk:TreeView>

Теперь я не получаю никаких исключений, каждый раз, когда я нажимаю элемент древовидного представления, только в моем выводеокно Я вижу:

Ошибка System.Windows.Data: ошибка пути BindingExpression: свойство 'Division' не найдено в 'xxx.Base.RmDivision' 'xxx.Base.RmDivision' (HashCode = 35753827),BindingExpression: Path = 'Division' DataItem = 'xxx.Base.RmDivision' (HashCode = 35753827);Целевым элементом является 'System.Windows.Controls.ContentControl' (Name = '');Свойство target - «Content» (тип «System.Object») ..

Я здесь новичок и не знаю, что происходит, единственный способ узнать, что это древовидное представление:так как это единственный элемент управления, который должен что-либо делать со свойством Division, это SelectedValuePath, я хочу, чтобы SelectedItem был экземпляром RmDivision, и в настоящий момент он работает следующим образом.

С уважением

1 Ответ

2 голосов
/ 11 февраля 2011

Разделение не является собственностью RmDivision.Поэтому каждый раз, когда вы выбираете древовидный элемент, он пытается найти свойство и не может его найти.

...