Как добавить подпункты в wpf listvew c # - PullRequest
2 голосов
/ 27 декабря 2011

Я хочу вставить подэлементы представления списка в wpf.

Я использую этот код для вставки подэлементов в представление формы окна Windows,

con.Open();
DataTable dt = new DataTable();
DataSet ds = new DataSet();
ds.Tables.Add(dt);

OleDbDataAdapter da = new OleDbDataAdapter("select * from test where (SecSym='" + secsym + "')", con);
da = new OleDbDataAdapter("select * from test where (SecSym='" + secsym + "')order by Date desc", con);
da.Fill(dt);
int iRecords = 0;
foreach (DataRow myrow in dt.Rows)
{
    ListViewItem lItem = new ListViewItem();
    lItem.UseItemStyleForSubItems = false;
    DateTime Date = DateTime.ParseExact(myrow[3].ToString(), "yyyyMMdd", CultureInfo.CurrentCulture);
    string date = Date.ToString("ddd, dd-MMM-yyyy");
    lItem = listviewTargets.Items.Insert(iRecords, date);
    lItem.UseItemStyleForSubItems = false;
    // listviewTargets.Items.Add(myrow[2].ToString());
    lItem.SubItems.Add(myrow[1].ToString());
    lItem.SubItems.Add(myrow[15].ToString());
    lItem.SubItems.Add(myrow[5].ToString(), Color.White, Color.Green, lItem.Font);
    lItem.SubItems.Add(myrow[7].ToString());
    lItem.SubItems.Add(myrow[8].ToString());
    lItem.SubItems.Add(myrow[9].ToString());
    lItem.SubItems.Add(myrow[10].ToString());
    iRecords++;
    lItem = listviewTargets.Items.Insert(iRecords, "");
    lItem.UseItemStyleForSubItems = false;
    lItem.SubItems.Add("");
    lItem.SubItems.Add("");
    lItem.SubItems.Add(myrow[6].ToString(), Color.White, Color.Red, lItem.Font);
    lItem.SubItems.Add(myrow[11].ToString());
    lItem.SubItems.Add(myrow[12].ToString());
    lItem.SubItems.Add(myrow[13].ToString());
    lItem.SubItems.Add(myrow[14].ToString());
    iRecords++;
}
con.Close();

Но я не знаю, как вставитьподэлементы в wpf listview.

Было бы очень признательно, если бы кто-то мог меня.

Заранее спасибо.

1 Ответ

2 голосов
/ 27 декабря 2011

WPF Listview немного отличается и не имеет «SubItems». Вы можете достичь своей цели следующим образом:

Определить ListView в xaml (с привязкой данных к коллекции):

<ListView ItemsSource="{Binding People}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
            <GridViewColumn Header="Date of Birth" DisplayMemberBinding="{Binding DOB}"/>
        </GridView>
    </ListView.View>
</ListView>

CodeBehind этого примера:

public partial class MainWindow : Window
{
    public class Person
    {
        public string Name {get;set;}
        public DateTime DOB {get;set;}
    }

    public IList<Person> People { get; set; }

    public MainWindow()
    {
        People = new List<Person>() 
        {
            new Person() {Name = "Martin", DOB = DateTime.Now.AddYears(-20)},
            new Person() {Name = "Lilo", DOB = DateTime.Now.AddYears(-25)}
        };

        InitializeComponent();
        this.DataContext = this;
    }
}

ListView Expample

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...