WPF DataGrid绑定到IEnumerable <keyvaluepair <int,customtype =“”>&gt; </keyvaluepair <int,>

时间:2011-04-20 13:05:36

标签: c# wpf data-binding datagrid

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

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

itemssourceIEnumerable<KeyValuePair<int, Variation>> Variations

Variation有2个子类,MultipeChoiceVariationTypedFieldsVariation

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

1 个答案:

答案 0 :(得分:2)

如果您丢失了括号并从路径中输入了类型,它应该可以工作:

Path=Value.Answers.Count

如果它没有按预期工作,那么请检查输出窗口是否存在绑定错误,它将为您提供有关出错的线索。只需确保Count是属性,而不是函数。