1

OK では、管理者のリストから管理者を選択するコンボ ボックスがあります。

<ComboBox x:Name="adminCombo"
          ItemsSource="{Binding AdminsList}"
          DisplayMemberPath="Name"
          SelectedValue="{Binding Administrator}"
          SelectedValuePath="Name"/>

この下に、WPF Toolkit DataGrid があります。各管理者は、ユーザー定義フィールド (AvailableUDF) のリストを保持しています。私のデータグリッドの最初の列には、選択した管理者に属するフィールドのリストを項目ソースとする別のコンボボックスで構成される編集可能なテンプレートが必要です。次のマークアップは機能しません。

<toolkit:DataGrid 
     AutoGenerateColumns="False"
     ItemsSource="{Binding Path=UserDefinedFields}">
     <toolkit:DataGrid.Columns>
        <toolkit:DataGridTemplateColumn Header="Custom Data">
          <toolkit:DataGridTemplateColumn.CellEditingTemplate>
             <DataTemplate>
                  <ComboBox ItemsSource="{Binding ElementName=adminCombo, 
                    Path=SelectedValue.AvailableUDFs}"
                    SelectedValue="{Binding Field.Type}"
                    DisplayMemberPath="Name"/>
             </DataTemplate>
          </toolkit:DataGridTemplateColumn.CellEditingTemplate>
        </toolkit:DataGridTemplateColumn>
     </toolkit:DataGrid.Columns>
</toolkit:DataGrid>

Relative Source - Find Ancestor を試し、ツリーを前のコンボ ボックスまで検索しましたが、役に立ちませんでした。奇妙なことに、ListView のアイテム テンプレートに同じコンボ ボックスを配置すると、正常に機能します。選択した管理者に応じて、正しいアイテム リストが表示されます。WPF ListView を使用する際の問題は、最終的に同じ行に他の編集可能なセルを配置したいということであり、プレーンな ListView はこの目的を意図していません。

誰でも私を助けることができますか?ありがとうクリス

4

1 に答える 1

0

datagridcombocolumn を使用できますが、アイテムのソースを取得するのは少し難しいです。ここでこれを行う方法に答えました。お楽しみください。

于 2009-12-11T00:51:31.200 に答える