2010-11-11 2 views
0

У меня есть список с элементами в моем классе данных:Silverlight. Странная проблема с привязкой

public ObservableCollection<Node> NodesFromDatabase 
    { 
     get 
     { 
      if (_nodesFromDatabase == null) 
       _nodesFromDatabase =GenerateMenuNodes(); 
      return _nodesFromDatabase ; 
     } 
     set 
     { 
      _nodesFromDatabase = value; 
     } 
    } 

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

 public ObservableCollection<Node> Nodes 
     { 
      get { return (ObservableCollection<Node>)GetValue(NodesProperty); } 
      set 
      { 
       SetValue(NodesProperty, value); 
      } 
     } 

     private static DependencyProperty NodesProperty = 
    DependencyProperty.Register(
     "Nodes", 
     typeof(ObservableCollection<Node>), 
     typeof(Control),new PropertyMetadata(new ObservableCollection<Node>())); 

В XAML у меня есть такой код:

<Grid Background="White"> 
    <Grid.DataContext> 
     <local:DataFromDataBase x:Name="database" /> 
    </Grid.DataContext> 


    <local:Control Nodes="{Binding NodesFromDatabase}" />     
</Grid> 

И у меня есть странная логика этого кода.

Свойство My NodesFromDatabase запускается в инструкции-получателе, но управляет инструкцией для операторов Nodes! Что я с ним делаю?

ответ

3

Свойства зависимостей, которые установлены в XAML, могут обходить оболочку CLR. Вы должны создать обратный вызов с измененным свойством в метаданных свойств, если вы хотите узнать, когда изменяется свойство.

Смежные вопросы