c# - WPF DataGrid 绑定(bind)到 IEnumerable<KeyValuePair<int, CustomType>>

标签 c# wpf data-binding 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”并且我确定数据网格的项目源中的所有变体都是 TypedFieldsVariations

最佳答案

如果您丢失括号并从 Path 中进行类型转换,它应该可以工作:

Path=Value.Answers.Count

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

关于c# - WPF DataGrid 绑定(bind)到 IEnumerable<KeyValuePair<int, CustomType>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5730794/

相关文章:

c# - 在 C# 中比较两个有序列表

wpf - 动画完成后如何正确执行命令?

c# - 白色 UIAutomation click() 停止在不同平台上工作

android - 在数据绑定(bind)中设置动态布局高度

asp.net - 内部 .ascx 控件和 FormView 中的数据绑定(bind)

具有可变数量的按钮/形状的 WPF DataGrid 列

c# - ASP.NET 限制登录重试次数

c# - 关于变量名成员前缀

c# - 在 C# 上发送带有内容类型应用程序 Json 的 post Https 请求

wpf - 如何实现每 16 毫秒流畅的 UI 更新?