2016-05-29 5 views
1

Ich mache gerade einen Launcher (Stellen Sie sich so etwas wie den LoL Launcher vor) für mein Source Engine basiertes Spiel.WPF C# - Hinzufügen von 3 Zeichen zu DataGrid

Ich habe eine funktionierende SSQLib, die die Serverdaten abfragen (Servername, Currentplayers/Maxplayers, Map name). Ich möchte diese drei Daten in einem DataGrid auflisten. Also, wie kann ich diese in einem DataGrid auflisten?

Hier ist mein Code:

private void btnLoadDataGrid_Click(object sender, RoutedEventArgs e) 
     { 
      string ip = "192.168.1.73"; 
      int port = 27015; 

      IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), port); 

      SSQL query = new SSQL(); 
      ServerInfo serverInformation = query.Server(endpoint); 

      string servername = serverInformation.Name.ToString(); 
      string mapname = serverInformation.Map.ToString(); 
      string servermaxplayer = serverInformation.MaxPlayers.ToString(); 
     } 
+2

Was ist Ihre Frage genau? –

+0

(mein Fehler) bearbeitet! –

Antwort

0

Wenn Sie MVVMC verwenden und ich das richtig verstanden, was Sie versuchen, Ihren Code zu tun, sollte wie folgt aussehen:

Ausblick:

<DataGrid x:Name="MyDataGrid" ItemsSource="{Binding Path=MyObservableCollection}" AutoGenerateColumns="False"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="ServerName" Binding="{Binding servername}"/> 
       <DataGridTextColumn Header="MapName" Binding="{Binding mapname}"/> 
       <DataGridTextColumn Header="MaxPlayers" Binding="{Binding servermaxplayer}"/>    
      </DataGrid.Columns> 
</DataGrid> 

ViewModel:

private ObservableCollection<ServerModel> _myObservableCollection; 

     public ObservableCollection<ServerModel> MyObservableCollection 
     { 
      get { return _myObservableCollection; } 
      set 
      { 
       if (_myObservableCollection == value)         
        return; 
       _myObservableCollection = value;          
       OnPropertyChanged("MyObservableCollection");       
      } 
     } 

Controller:

private LauncherViewModel mViewModel;    

     public void Initialize()           
     { 
      var view = new Launcher(); 

      mViewModel = new LauncherViewModel 
      { 
       MyObservableCollection = new ObservableCollection<ServerModel>(), 
      }; 
      view.DataContext = mViewModel; 
      view.ShowDialog(); 

     } 

Modell: Zusätzlich

public class ServerModel 

public string servername { get; set; } 
public string mapname { get; set; } 
public int servermaxplayer { get; set; } 

, sollten Sie die servermaxplayer Property als int definieren, da es sich um eine Zahl, kein String -> siehe Modell. :)

+0

danke für die Hilfe! –

+0

war mir ein Vergnügen :) – ccdreyer