1

を含む列を持つデータグリッドがありますComboBox。コンボボックスに を設定しましたNameが、この名前がコードに表示されません。なぜですか?

<DataGrid ...>
    <DataGrid.Columns>
        <DataGrid.TemplateColumn>
             <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox Name="mex" Style="{DynamicResource ComboBoxStyle}"
                              ItemsSource="{Binding Path=combolist}"
                              SelectionChanged="status_SelectionChanged" Height="auto" Width="Auto">
                    </ComboBox>
                </DataTemplate>
             </DataGridTemplateColumn.CellTemplate>
        </DataGrid.TemplateColumn>
        ...
    </DataGrid.Columns>
</DataGrid>

C# のコードmexが空で、表示されないのはなぜですか?

私も試しx:Name="mex"てみましたが、まだ表示されません。

c#:

mex.ItemsSource = dt;

未定義mex

4

3 に答える 3

0

テンプレートはすべての行で使用されるため。名前が使用可能な場合は、ビジュアルツリーで一度に同じ名前にする必要があります。

于 2012-07-10T16:03:34.300 に答える
0

要素がアイテム テンプレート内に格納されている場合、要素を直接参照することはできません。通常、データコンテキストを親オブジェクトに設定することでビューモデルがバインディングを処理できるようにし、アイテム テンプレート内の要素がこれを取得できるようにする必要があります。ただし、質問に基づいて、コードビハインドから直接これを実行しようとしているように見えます。

アイテムのデータ コンテキストの設定と、アイテム テンプレート内の要素の参照に関する 2 つの同様の質問と解決策を次に示します。お役に立てれば

DataTemplate から親 DataContext にアクセスする

WPF - ItemsControl - ItemTemplate にある "CheckBox" アイテムを見つけるにはどうすればよいですか?

于 2012-07-10T14:07:26.953 に答える