0

私はwpf形式で次のデータグリッドを持っています:

<DataGrid Name="DataGrid" AutoGenerateColumns="False" VerticalScrollBarVisibility="Auto">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Width="200"></DataGridTextColumn>
        <DataGridTextColumn Header="Text" Width="200"></DataGridTextColumn>
        <DataGridTemplateColumn Header="Edit" Width="50">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Button>View Details</Button>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

そして、コードからそれを設定したいと思います。linq ステートメントを使用して、データグリッドに入れたい値を取得します

var query =
    (
        from modules ...
        join ...
        join ...
        where ...
        select new { ID = modules.ID, Name = strings.Name, Text = stringTexts.Text }
    );

列「名前」と「テキスト」にクエリからの名前とテキストを入力したいのですが、各行にボタンが必要であり、そのボタンが押されたときに ID を知る必要があります。押された行ですが、ID がグリッドに表示される必要はありません。

これらの値をグリッドに入力するにはどうすればよいですか?

4

2 に答える 2

2

を使用してプロパティにバインドするように列に指示します

<DataGridTextColumn Header="Name" Width="200" Binding="{Binding Name}" />

他の列についても同様です。

次に、コードビハインドで

DataGrid.ItemsSource = query;
于 2012-08-14T19:04:07.307 に答える
0

これはあなたのために働くはずです:

Grid.DataSource = from x in modules
                  select new
                  {
                      x.Name,
                      x.Text
                  };
Grid.DataBind();

頑張ってください!

于 2012-08-14T19:15:15.107 に答える