【问题标题】:How to bind booleans to DataTemplate如何将布尔值绑定到 DataTemplate
【发布时间】:2018-12-18 13:06:46
【问题描述】:

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

但是分配给 DataMemberBindingEnabledConnected 属性不起作用,

【问题讨论】:

    标签: wpf xaml telerik telerik-grid


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2010-12-23
      • 2015-04-07
      相关资源
      最近更新 更多