2016-04-28 5 views
0
<DataGrid.Columns> 
    <DataGridTextColumn Header="A" Width="150" Binding="{Binding A}"/> 
    <DataGridTextColumn Header="B" Width="100" Binding="{Binding B}"/> 
    <DataGridTextColumn Header="C" Width="100" Binding="{Binding C}"/> 
    <DataGridTextColumn Header="D" Width="100" Binding="{Binding D}"/> 
    <DataGridTextColumn Header="E" Width="100" Binding="{Binding E}"/> 
    <DataGridTextColumn Header="F" Width="100" Binding="{Binding F}"/> 
<DataGrid.Columns/> 

今、私はA、B、C、D、E、Fの代わりにテキストファイル1,2,3,4,5,6から値を取ります。それ、どうやったら出来るの?メモ帳のテキストファイルからDataGridヘッダーに値を取り込む方法はありますか?私はデータではなくヘッダーを取るだけです

答えて

0

テキストファイルを読むには、StreamReaderをを使用することができます:DataGridのヘッダーの

using (var reader = new StreamReader(File.OpenRead("c:/yourfile.txt"), 
            Encoding.GetEncoding("iso-8859-1"))) 
{ 
    while (!reader.EndOfStream) 
    { 
     var line = reader.ReadLine(); 
     var values = line.Split(';'); // replace ';' by the your separator 

     string header1 = values[0]; 
     string header2 = values[1]; 
     string header3 = values[2]; 
     //... 

    } 
} 

を、あなたはプロパティに、各ヘッダをバインドする必要があります。 * .csファイル

private string header1; 
public string Header1 
{ 
    get 
    { 
     return header1; 
    } 
    set 
    { 
     this.header1 = value; 
     this.NotifyPropertyChanged("Header1"); 
    } 
} 

編集 * .csファイル

public MainWindow() 
{ 
    InitializeComponent(); 
    this.DataContext = new MainViewModel(); 
    Layout.DataContext = this.DataContext; 
} 

の後ろ

*の.xaml

<Grid Background="White" x:Name="Layout"> 
    <DataGrid x:Name="grid" ItemsSource="{Binding MyCollection}" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding FirstName}"> 
       <DataGridTextColumn.Header> 
        <TextBlock DataContext="{Binding ElementName=Layout, Path=DataContext}" Text="{Binding Header1}"/> 
       </DataGridTextColumn.Header> 
      </DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 
</Grid> 

コードとViewModelに :あなたはこの実装を試すことができますあなたはMVVMを使用していない場合は、この方法を試すことができます。

* .csファイル

string Header1 = string.Empty; 
using (var reader = new StreamReader(File.OpenRead("c:/yourfile.txt"), 
         Encoding.GetEncoding("iso-8859-1"))) 
{ 
    while (!reader.EndOfStream) 
    { 
     var line = reader.ReadLine(); 
     var values = line.Split(';'); // replace ';' by the your separator 

     Header1 = values[0]; 
     //... 
    } 
} 
grid.Columns[0].Header = Header1; 

*の.xaml

<DataGrid.Columns> 
    <DataGridTextColumn Width="150" Binding="{Binding A}"/> 
<DataGrid.Columns/> 
+0

あなたはMMVMを実装していますか? – Amine

+0

私の回答を更新 – Amine

+0

あなたの助けになるあなたのxamlとコードを共有することができます – Amine

関連する問題