2011-01-12 5 views
0

次のコードで私を助けてください。ユーザーが入力した行をgridviewに追加します。 私は行を追加することができますが、空です!! help.itはWindowsフォームで動作しますが、WPFでは動作しません。WPFのgridviewにrow dyanamicalyを追加する

private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      GetGridView(); 
     } 
     private void GetGridView() 
     { 

     string[] row0 = {textBox1.Text,"Beatles" }; 

      dataGrid1.Items.Add(row0); 
      dataGrid1.Columns[0].DisplayIndex = 0; 
      dataGrid1.Columns[1].DisplayIndex = 1; 

    } 

////////////// 確か、ここでそれは

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="964"> 
    <Grid> 
     <DataGrid AutoGenerateColumns="False" Height="274" HorizontalAlignment="Left" Margin="509,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="239" DataContext="{Binding}" ItemsSource="{Binding}" ItemStringFormat="{Binding}" SelectedIndex="-1" SelectionChanged="dataGrid1_SelectionChanged"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Header1" /> 
      <DataGridTextColumn Header="Header" /> 
     </DataGrid.Columns> 
    </DataGrid> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" TextChanged="textBox1_TextChanged" /> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,187,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" /> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,125,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" /> 
    <TextBox Height="23" HorizontalAlignment="Left" Margin="184,66,0,0" Name="textBox4" VerticalAlignment="Top" Width="120" /> 
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="414,231,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> 
</Grid> 

+0

あなたはXAMLやデータグリッドの他の定義のコードを追加してくださいでした、多分エラーが発見されるのですか? –

答えて

2

編集です:あなたはできない、データグリッドののItemsSourceを拘束グリッドに項目を追加する場合は、バインドされたコレクションに項目を追加します(これは最初に提案したものです)。


そういうことはお勧めしません。 WPFでは、データにbind your controlsを渡すと、ソースコレクションを変更することができ、グリッドは自動的に更新されます。のような任意のメソッドを使用するよりも面倒です。objectの入力を受け入れます。


XAML:

<DataGrid ItemsSource="{Binding GridData}" Name="DGrid"/> 
    <TextBox Name="TB" Width="100"/> 
    <Button Content="Add" Click="Button_Click"/> 

コード:

private ObservableCollection<Employee> gridData = new ObservableCollection<Employee>(); 
    public ObservableCollection<Employee> GridData 
    { 
     get { return gridData; } 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     GridData.Add(new Employee(TB.Text, "Beatles?")); 
    } 
+0

ありがとうございました。私が取り組んでいる元の問題は実際には異なっています。私はそれを実装する方法について完全に混乱しています。だから、私はgridViewに少なくともユーザデータを表示できるかどうかを調べようとしていました。 – keenOnCoding

+0

私はそれを行うよりよい方法を教えてください。私の問題です。 – keenOnCoding

+0

Visual StudioでTurbo Tax Softwareに類似した化学分析ツールについてのツールを開発しなければなりません。このツールは、化学組成ユーザーによって入力された値に基づいて、バックエンドでいくつかの計算(いくつかの大きな計算)を行い、レポート(テーブル/チャートの形式)を印刷/ pdfsします。 使用ソフトウェア:Visual Studio 2010、C# – keenOnCoding

関連する問題