Как связать логические значения с DataTemplate - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть этот DataTemplate для моего RadGridView с привязкой:

<DataTemplate x:Key="StatusTemplate">
    <local:StatusIndicator Style="{StaticResource StatusIndicator}" IsEnabled="{Binding}" />
</DataTemplate>

Я использую его на своем GridViewDataColumn, как это, где я связываю логические значения из моего ItemsSource :

<telerik:GridViewDataColumn DataMemberBinding="{Binding Enabled}" CellTemplate="{StaticResource StatusTemplate}" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Connected}" CellTemplate="{StaticResource StatusTemplate}" />

Но свойства Enabled и Connected , назначенные для DataMemberBinding , не работают,

1 Ответ

0 голосов
/ 18 декабря 2018

Боюсь, вы не сможете использовать один и тот же DataTemplate для обоих столбцов.Путь привязки нельзя «вставить» в шаблон в XAML, что означает, что потребуется создать уникальный DataTemplate с определенным путем привязки для каждого столбца:

<telerik:GridViewDataColumn DataMemberBinding="{Binding Enabled}">
    <telerik:GridViewDataColumn.CellTemplate>
        <DataTemplate>
            <local:StatusIndicator Style="{StaticResource StatusIndicator}" IsEnabled="{Binding Enabled}" />
        </DataTemplate>
    </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Connected}">
    <telerik:GridViewDataColumn.CellTemplate>
        <DataTemplate>
            <local:StatusIndicator Style="{StaticResource StatusIndicator}" IsEnabled="{Binding Connected}" />
        </DataTemplate>
    </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>

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

Объединение шаблонов данных во время выполнения

...