0

テンプレート化された DataGrid 列内の StackPanel の内容をコードで編集しようとしています。残念ながら、コードから StackPanel を見つけることができません。誰か助けてくれませんか?

これは私の DataTemplate です:

<UserControl.Resources>
    <DataTemplate x:Key="ReservationContainerTemplate">
        <StackPanel Orientation="Horizontal" Background="Black" />
    </DataTemplate>
</UserControl.Resources>

これは私がこの列を作成する方法です:

var colReservations = new DataGridTemplateColumn();

colReservations.Header = "Nordplatz";

DataTemplate dt = null;
dt = dataGrid1.FindResource("ReservationContainerTemplate") as DataTemplate;

colReservations.CellTemplate = dt;
dataGrid1.Columns.Add(colReservations);

私がする必要があるのは、DataTemplate 内のこの StackPanel に書き込むことです。

4

1 に答える 1

0

次のコードでオブジェクトを取得できました。

        DataRowView n = (DataRowView)dataGrid1.Items[i];
        //var m = dataGrid1.SelectedItem.Cells[0].Text;

        DataTemplate Template = dataGrid1.FindResource("ReservationContainerTemplate") as DataTemplate;
        StackPanel stp = Template.LoadContent() as StackPanel;

オブジェクトを取得しましたが、どうすれば変更できますか? この条件下では、オブジェクトのコピーしか取得できず、変更は元のオブジェクトに反映されません。

誰かがアイデアを持っていますか?

于 2012-04-28T20:49:26.757 に答える