Привязать к методу в коде позади - PullRequest
3 голосов
/ 18 января 2010

У меня есть пользовательский шаблон элемента управления для ListView, который добавляет дополнительную строку для каждой записи, что-то вроде этого определяется в Window.Resources ...

<ControlTemplate TargetType="ListBoxItem">
    <Border>
        <StackPanel>
            <GridViewRowPresenter>
            <TextBlock Name="myTextBlock" />
        </StackPanel>
     </Border>
     <ControlTemplate.Triggers>
         //Triggers here
     </ControlTemplate.Triggers>
</ControlTemplate>

Моя проблема в том, что яхотите связать текст в TextBlock с , отличающимся ItemsSource от того, который будет привязан к фактическому ListBox при его создании.Связывание программно невозможно.Я пытался заменить TextBlock на другой ListView и привязать к методу, но я не мог понять, как использовать ObjectDataProvider и привязать метод в моем коде (который содержит метод, который будет возвращатьсписок вещей, которые я тоже хочу связать), но столкнулся с проблемами и с этим.

Быстрый шаг за шагом, если мне неясно:

  • У меня есть шаблон ListView, который добавляет дополнительную строку для каждой записи

  • Этот ListView будет связан (скажем) с коллекцией объектов Foo.

  • Проблема в том, что я хочу связать дополнительную строку с совершенно другим источником элементов, чем основной ListView.Не похоже, что я могу сделать это из моего шаблона: /

Итак, есть ли способ прямой привязки к результатам метода, определенного в моем коде, который яможет ссылаться в шаблоне?

1 Ответ

1 голос
/ 18 января 2010

Хорошо, это идея:

1) создать список, связанный с Foo с таким шаблоном элемента:

-------------
| DATA HERE |
|           |
-------------

2) создать список, связанный с completely different itemsource с таким шаблоном элемента:

-------------
|           |
| DATA HERE |
-------------

3) нарисуйте первый список за вторым.

Если количество предметов одинаково (как я понимаю, это ваш случай), вы получите желаемый визуальный эффект. Надеюсь, это поможет.

EDIT
Этот метод не соответствует вашему текущему шаблону, но это вариант решения.

...