【问题标题】:WPF DataGrid binding to IEnumerable<KeyValuePair<int, CustomType>>WPF DataGrid 绑定到 IEnumerable<KeyValuePair<int, CustomType>>
【发布时间】:2011-04-20 13:05:36
【问题描述】:

我的数据网格:

<DataGrid ItemsSource="{Binding Path=Question.Variations}" AutoGenerateColumns="False" 
          Height="97" HorizontalAlignment="Left" Margin="7,6,0,0" Name="dataGrid1"
          VerticalAlignment="Top" Width="322">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Variatienr" Binding="{Binding Key}"/>
        <DataGridTextColumn Header="# vraagparameters" 
             Binding="{Binding Value.QuestionParameters.Count}"/>
        <DataGridTextColumn Header="# antwoordparameters" 
             Binding="{Binding Path=((TypedFieldsVariation)Value).Answers.Count}"/>
    </DataGrid.Columns>
</DataGrid>

以下列除了标题外什么都不显示:

<DataGridTextColumn Header="# antwoordparameters" 
            Binding="{Binding Path=((TypedFieldsVariation)Value).Answers.Count}"/>

我知道这可能是错误的,但现在我的问题是如何显示它?

itemssourceIEnumerable&lt;KeyValuePair&lt;int, Variation&gt;&gt; Variations

Variation 有 2 个子类,MultipeChoiceVariationTypedFieldsVariation

现在我想要属性“答案”,我确信数据网格的 itemssource 中的所有变体都是 TypedFieldsVariations

【问题讨论】:

    标签: c# wpf data-binding datagrid


    【解决方案1】:

    如果您丢失了括号并从 Path 中键入强制转换,它应该可以工作:

    Path=Value.Answers.Count
    

    如果它没有按您的预期工作,请检查您的输出窗口是否有绑定错误,它会为您提供有关哪里出错的线索。只要确保Count 是一个属性,而不是一个函数。

    【讨论】:

    • @Stef - 如果您对 slugster 的回答感到满意,请单击答案左侧的“勾号”将其标记为“已接受”。这将奖励 slugster 你一些声望点,并向其他任何人表明这是正确的答案。 (您可能还想考虑在其他一些问题上做同样的事情,因为人们可能不愿意为那些没有接受很多/任何答案的用户提供问题的答案) =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2011-03-26
    • 1970-01-01
    • 2013-10-14
    • 2011-05-14
    • 2015-07-02
    • 2013-07-28
    相关资源
    最近更新 更多