<Window x:Class="competition.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:competition"
Title="competition" Height="300" Width="300" Loaded="OnLoaded"
>
<Window.Resources>
<src:ComPlayerList x:Key="DataList"/>
<DataTemplate x:Key="Player1Template" DataType="{x:Type src:Player}" >
<TextBlock Text="{Binding Path=Name}" MinWidth="130" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</DataTemplate>
</Window.Resources>
<Grid>
<ListView Name="CompetitionTable">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="TableNum" CellTemplate="{StaticResource Player1Template}" Width="20"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
cs文件
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;
using System.Collections.ObjectModel;
namespace competition
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : System.Windows.Window
{
public Window1()
{
InitializeComponent();
}
private ComPlayerList PlayerList = new ComPlayerList();
private void OnLoaded(Object sender, EventArgs e)
{
System.Windows.Forms.OpenFileDialog openDlg = new System.Windows.Forms.OpenFileDialog();
openDlg.InitialDirectory = Environment.CurrentDirectory;
string filePath;
string[] players = null;
if (openDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
filePath = openDlg.FileName;
StreamReader readLogFile = new StreamReader(filePath, Encoding.Default);
string readLogLine = string.Empty;
readLogLine = readLogFile.ReadLine();
players = readLogLine.Split(',');
for (int i = 0; i < 30; i++)
{
PlayerList.Add(new Player(players[i]));
}
CompetitionTable.ItemsSource = PlayerList;
}
else
{
this.Close();
}
}
}
class ComPlayerList : ObservableCollection<Player>
{
public ComPlayerList()
{
}
}
}
邦定的类的定义
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
namespace competition
{
class Player :INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(String info)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
private string m_Name;
public string Name
{
get
{
return m_Name;
}
set
{
m_Name = value;
OnPropertyChanged("Name");
}
}
private int m_Score = 0;
public int Score
{
get
{
return m_Score;
}
set
{
m_Score = value;
OnPropertyChanged("Score");
}
}
public Player(string name)
{
this.Name = name;
}
}
}
将文件中的姓名读出来显示在界面上