如何将布尔值绑定到DataTemplate

时间:2018-12-18 13:06:46

标签: wpf xaml telerik telerik-grid

我的RadGridView具有绑定的这个DataTemplate:

<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}" />

但是分配给 DataMemberBinding Enabled Connected 属性不起作用,

1 个答案:

答案 0 :(得分:1)

恐怕您将无法在两个列中使用相同的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比较复杂,则可以考虑创建模板并以编程方式替换绑定路径:

Combining DataTemplates at runtime