WPF DataGrid binding to IEnumerable<KeyValuePair<int,

本文关键字:lt KeyValuePair int DataGrid binding IEnumerable WPF to | 更新日期: 2023-09-27 17:50:35

My DataGrid:

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

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

itemssource = IEnumerable<KeyValuePair<int, Variation>> Variations

Variation有两个子类,MultipeChoiceVariationTypedFieldsVariation

现在我想要属性'Answers',我确信数据网格的itemssource中的所有变化都是TypedFieldsVariations

WPF DataGrid binding to IEnumerable<KeyValuePair<int,

如果你从路径中去掉括号和类型转换,它应该可以工作:

Path=Value.Answers.Count

如果它不像你期望的那样工作,那么检查你的Output窗口是否有绑定错误,它会给你提示出了什么问题。只要确保Count是一个属性,而不是一个函数。