Должна ли каждая строка в dataGrid silverlight иметь один и тот же «RowDetailsTemplate»? - PullRequest
2 голосов
/ 09 января 2009

Я определяю шаблон данных RowDetailsTemplate следующим образом:

RowDetailsTemplate = "{StaticResource defaultTemplate}"

, где

<UserControl.Resources>
    <DataTemplate x:Key="defaultTemplate">
        <StackPanel>
            <TextBlock Text="default" x:Name="_txt" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="otherTemplate">
        <StackPanel>
            <TextBlock Text="other" x:Name="_txt" />
        </StackPanel>
    </DataTemplate>
</UserControl.Resources>

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

Ответы [ 2 ]

1 голос
/ 26 февраля 2009

Во-первых: Большое спасибо, Том. Это спасло мой день (неделю / месяц): -)

А в C #:


if (1 == 1)
{
   e.Row.DetailsTemplate = (DataTemplate) Resources["defaultTemplate"];
}
else
{
   e.Row.DetailsTemplate = (DataTemplate) Resources["otherTemplate"];
}

Чтобы добавить больше возможностей этому решению, следующее Ссылка msdn показывает, как создавать элементы управления во время выполнения.

1 голос
/ 15 января 2009

Вы можете добавить следующий код в событие LoadingRowDetails, явно заменив мое бесполезное условие If своим собственным:

    If 1 = 1 Then
        e.Row.DetailsTemplate = CType(Resources("defaultTemplate"), DataTemplate)
    Else
        e.Row.DetailsTemplate = CType(Resources("otherTemplate"), DataTemplate)
    End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...