Silverlight.Странная проблема с привязкой - PullRequest
0 голосов
/ 12 ноября 2010

У меня есть список элементов в моем классе данных:

 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>

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

Моё свойство NodesFromDatabase запускается в операторе get, но управляющий оператор Set Nodes не запускается! Что я делаю не так с этим?

1 Ответ

3 голосов
/ 12 ноября 2010

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

...