【问题标题】:WPF - Cannot get Bound Data to display in ListViewWPF - 无法获取绑定数据以在 ListView 中显示
【发布时间】:2011-08-15 10:17:32
【问题描述】:

我在 gridview 中有一个列表。我已绑定 gridview 列以获取 JFifoData 类中的集合成员,我已在 Observable Collection 中收集了这些成员的实例。然后,我将 ListView ItemsSource 绑定到此集合。但是,由于某种原因,当我运行程序时没有显示数据。这是相关代码,我做错了吗?

XAML 代码

<ListView Name="JfifoList" ItemsSource="{Binding JFifoCollection}">>
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Time}" Header="time" Width="225"/>
            <GridViewColumn DisplayMemberBinding="{Binding FEStatus}" Header="fe status" Width="225"/>
            <GridViewColumn DisplayMemberBinding="{Binding BEStatus}" Header="be status" Width="225"/>
            <GridViewColumn DisplayMemberBinding="{Binding Trigger}" Header="trigger" Width="350"/>
        </GridView>
    </ListView.View>
</ListView>

JFifoData 类

public class JFifoData
{
    public DateTime Time { get; set; }
    public string FEStatus  { get; set; }
    public string BEStatus  { get; set; }
    public string Trigger  { get; set; }

    public uint TID  { get; set; }
    public uint Frames  { get; set; }
    public uint HWCRC  { get; set; }
    public uint FPS  { get; set; }
    public string Faults { get; set; }
    public string Info { get; set; }
    public string Config { get; set; }
}

获取我的窗口类的成员

public ObservableCollection<JFifo.JFifoData> JFifoCollection
{
    get
    {
        return Fifo.CollectedData;
    }
}

Observable 集合的初始化

Data = new ObservableCollection<JFifoData>();
Data.Add(new JFifoData
{
    Time = new DateTime(),
    FEStatus = "FE Good",
    BEStatus = "BE Good",
    Trigger = "Trigged"
});
Data.Add(new JFifoData
{
    Time = new DateTime(),
    FEStatus = "FE Bad",
    BEStatus = "BE Bad",
    Trigger = "Not Trigged"
});

【问题讨论】:

    标签: c# wpf xaml listview observablecollection


    【解决方案1】:

    您的代码看起来不错,但是,如果这是您代码的所有相关部分,那么您还没有为您的ListView 设置DataContext。执行以下操作:

    JfifoList.DataContext = theClassWhichExposesJFifoCollection
    

    您的 XAML 也会出现格式错误。看第一行:

    <ListView Name="JfifoList" ItemsSource="{Binding JFifoCollection}">>
    

    最后有两个尖括号!

    【讨论】:

    • 我设置了数据上下文,现在我得到这个错误:在使用 ItemsSource 之前,项目集合必须为空。我想那是因为我一初始化就往里面添加东西。
    • 该死的。这些小事变得很烦人。非常感谢您的帮助。
    【解决方案2】:

    似乎您的DataContext 设置不正确。运行代码,然后查看 Visual Studios 输出窗口,看看是否有任何绑定错误。

    【讨论】:

    • DataContext 作为问题。谢谢!
    猜你喜欢
    • 2011-06-08
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多