如何将布尔值绑定到 DataTemplate
How to bind booleans to DataTemplate
我的 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 属性不起作用,
恐怕您无法对两列使用相同的 DataTemplate
。绑定路径不能 "injected" 到 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
更复杂,您可以考虑创建模板并以编程方式替换绑定路径:
我的 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 属性不起作用,
恐怕您无法对两列使用相同的 DataTemplate
。绑定路径不能 "injected" 到 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
更复杂,您可以考虑创建模板并以编程方式替换绑定路径: