【问题标题】:Usercontrol for reusable Listview in WPFWPF中可重用Listview的用户控件
【发布时间】:2011-06-09 17:03:32
【问题描述】:

我是 winforms 和 asp.net 的程序员。 WPF 应用程序开发的新手。

我要提前感谢对我的查询提供的任何帮助,

我正在处理银行应用程序。我的工作简介是为应用程序开发可重用的用户控件。

一个例子是制作一个具有最大和最小数字属性的简单数字输入框。因此,如果输入的数字不在范围内,则控件会弹出错误。 (当然,这个控件还有更多内容 :-)

在类似的线路上。我必须开发一个具有两个属性的列表视图用户控件。

1) 列标题的逗号分隔值
2) 要添加的数据的逗号分隔值

我的同事,现在将此用户控件放置在窗口上(如 ​​WPF 中所知)。并将上述参数传递给listview控件。

我的编码可确保放置列并添加数据。在 winforms 中,这是一个简单的过程。在 WPF 中,我可以通过预先在 observablecollection 中定义或以其他方式使用来为已知列实现它

SamplelistView.Items.Add(new { FirstName = "test1", LastName = "ABX", EmployeeNumber = "AAA111"});

但是在上述命令中,Firstname,Lastname 是先前已知的列。

是否有任何命令,例如将数据添加为数组或直接将数据添加到列而不绑定到集合。或者有没有办法在运行时向 observablecollections 添加列。

请。请原谅我对命名法和其他方面的了解有限。

【问题讨论】:

    标签: wpf listview observablecollection


    【解决方案1】:

    我解决这个问题的方法是:

    1. 创建一个托管DataGridUserControl
    2. ColumnNames 依赖属性添加到UserControl。在 PropertyChanged 事件处理程序中,解析 CSV 并相应地更新 DataGrid.Column
    3. Data 依赖属性添加到 UserControl - 当它发生变化时,解析 CSV 并将数据添加到 DataGrid

    请参阅此问题以获取一些提示:

    programmatically add column & rows to WPF Datagrid

    顺便说一句,列名的 CSV 是一个可怕的界面!为什么不公开List<string>,然后添加TypeConverter 以便在XAML 中使用CSV 字符串?

    【讨论】:

    • 谢谢,我会转达你的建议。我已经查看了上面提到的链接。现在解决了如何在运行时为放置的网格添加列的主题。但是,我仍在寻找如何将相应的数据添加到网格中。
    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 2016-01-06
    • 2010-10-01
    相关资源
    最近更新 更多