2017-09-18 1 views
1

Eine weitere Neuling Frage. Ich möchte eine Textdatei öffnen und an eine Listview (WPF) mit 2 Spalten, ID und Details binden. Hier ist eine Kopie der TXT-Datei. Die ID enthält also den Namen des Hosts und des Betriebssystems usw. Die Details enthalten die Informationen auf der rechten Seite. Diese Liste ist viel größer, aber Sie bekommen den Punkt. Ja, ich bin neu in C# und WPF. Ihre Hilfe ist willkommen ..Listview 2 Spalten WPF

Host Name:     MD1HXQTC 
OS Name:     Microsoft Windows 7 Enterprise 
OS Version:    6.1.7601 Service Pack 1 Build 7601 
BIOS Version:    Hewlett-Packard M70 Ver. 01.08, 3/16/2015 
+1

Und Sie haben noch nichts selbst versucht? Es gibt viele Dokumente und Beispiele für den WPF-ListView. – Clemens

+0

Ich habe einige Dinge ausprobiert ... hast du Lust mich in eine Richtung zu weisen? Danke .... nicht in einen schlauen *** Antworten..Thansk – Metrics

+0

SO würde gerne helfen, aber um dies zu tun, müssen Sie selbst einen Versuch machen. Teile es in Abschnitte auf und schreibe dann einen Code, um jeden Schritt auszuführen. an diesem Punkt, wenn Sie einen Fehler oder etwas bekommen, dann kommen Sie auf jeden Fall zurück und posten Sie eine Frage. – workabyte

Antwort

0

meine Klasse

Erstellt
public class Gambit 
{ 
    public string GetID { get; set; } 
    public string GetDetails { get; set; } 
} 

beobachtbare Sammlung hinzugefügt

private ObservableCollection<Gambit> gambitCollection = new ObservableCollection<Gambit>(); 

Methode Schrieb txt-Datei und binden an Objekte zu importieren

Microsoft.Win32.OpenFileDialog openfiledialog = new Microsoft.Win32.OpenFileDialog(); 
     openfiledialog.FileName = ""; // Default file name 
     openfiledialog.DefaultExt = ".txt"; // Default file extension 
     openfiledialog.Filter = "txt files (.txt)|*.txt"; // Filter files by extension 

     // Show open file dialog box 



     bool? result = openfiledialog.ShowDialog(); 

     // Process open file dialog box results 
     if (result == true) 
     { 

      var fileName = openfiledialog.FileName; 

      StreamReader file = new StreamReader(fileName); 

      string line = ""; 

      while ((line = file.ReadLine()) != null) 
      { 
       var splitLine = line.Split(':'); 


       if (splitLine.Count() > 1) 
       { 
        gambitCollection.Add(new Gambit() { GetID = splitLine[0].Trim(), GetDetails = splitLine[1].Trim() }); 
       } 
      } 

     } 

Binded ItemSource: Collection

ListViewRPMInfo.ItemsSource = gambitCollection; 

Vielen Dank an Babgev mich begann für immer und alle anderen, die mich in Richtungen zeigen.

4

Das Listview ein Nachkomme der List-Box ist, die benutzerdefinierten Ansichten, anstatt eine direkte Liste zu definieren.

Der einfachste Weg, um eine Liste mit Spalten zu erhalten, ist ein GridView als Ansicht Ihres ListView.

Also, wenn Sie eine Klasse wie dieses:

public class SomeClass 
{ 
    public string FirstProperty { get; set; } 
    public string SecondProperty { get; set; } 
} 

//Actually you will also need your setters to raise the PropertyChanged event but it's not in the scope of the question. 

Sie können Ihre Listview erklären, wie folgt: (beachten Sie die DisplayMemberBindings haben die Namen meiner Eigenschaften)

<ListView> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="First Property" 
          DisplayMemberBinding="{Binding FirstProperty}"/> 
      <GridViewColumn Header="Second Property" 
          DisplayMemberBinding="{Binding SecondProperty}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

Dann werden Sie brauchen um Ihre Sammlung von SomeClass zur ItemsSource der ListView zu machen.

+0

Ok ... Also ich habe meine Klasse ... – Metrics

+0

Ich habe versucht, die TXT-Datei in ein Array zu teilen, mit ":" Split auf Char. Nicht sicher, wie meine Datenstruktur für die Listenansicht aussehen soll. Nicht an OOP gewöhnt. Procedural Programmierung seit etwa 10 Jahren. Nur ein Kopf hoch, ich brauche jemanden, der mich durch das geht ... ich will nicht, dass jemand den Code gerade richtig macht, ich lerne und sehr, sehr grün..Danke im Voraus. Jeder Rat gibt mir die Beine zu arbeiten und damit zu laufen. – Metrics