Как переопределить контекст данных в панели стека? - PullRequest
0 голосов
/ 21 января 2011

Как переопределить контекст данных первой внутренней панели стека ... Так что ... Я могу ссылаться на свойства в классе A

  Class A
    {

    public B  b;

    }

    Class B
    {
    }

    <stack panel DataContext = b >
        <stack panel>
         // HEre I use properties from class A
        </stack panel>
        <stack panel>
         // HEre I use properties from class B
        </stack panel>
        <stack panel>
         // HEre I use properties from class B
        </stack panel>
        <stack panel>
         // HEre I use properties from class B
        </stack panel>
    </stack panel>

Ответы [ 2 ]

3 голосов
/ 21 января 2011
Class A
    {

    // B Should b a property
    public B  B{get; set;};

    }

    Class B
    {
    }

   <!-- Set A's Context here -->
   <StackPanel DataContext=A>
        <StackPanel>
         // HEre you use properties from class A
        </StackPanel>

        <StackPanel DataContext={Binding Path=B}>
         // HEre you use properties from class B
        </StackPanel>

        <StackPanel DataContext={Binding Path=B}>
         // HEre you use properties from class B
        </StackPanel>

        <StackPanel DataContext={Binding Path=B}>
         // HEre you use properties from class B
        </StackPanel>
   </StackPanel>
0 голосов
/ 21 января 2011

Пара способов в зависимости от того, как на самом деле настроены ваши классы.

  1. Создайте свойство ассоциации, которое ссылается на родительский класс объекта.Если класс B является потомком класса A, то в классе B может существовать свойство, указывающее, какой объект A содержит его.Когда ваш DataContext установлен на вашей стековой панели верхнего уровня, у вашего первого потомка может быть что-то вроде DataContext = "{Binding Parent}", где parent - это свойство, которое относится к ClassA.ваш DataContext в стековой панели верхнего уровня для привязки ClassA, оставьте это поле пустым для первого дочернего элемента и установите его в свойстве b для каждой последующей стековой панели.

Пожалуйста, дайте мне знать, если я понял ваше право.Возможно, мне понадобится больше информации о вашей программе и проблеме.

Кроме того, лучше скопировать / вставить реальный код, чем печатать его на ходу.Реальный код часто дает лучший контекст для проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...