1

次のように xamdatagrid がグリッドに追加されたユーザー コントロールがあります。

<Grid Name="grid1">
    <Grid.Resources>

        <Style TargetType="{x:Type igEditors:XamComboEditor}">
            <Setter Property="ItemsSource" Value="{Binding ElementName=grid1, Path=DataContext.Test}"/>
            <Setter Property="DisplayMemberPath" Value="Key"/>
        </Style>
    </Grid.Resources>
    <igDP:XamDataGrid DataSource="{Binding}" Name="xamDataGrid1" VerticalAlignment="Top" >
        <igDP:XamDataGrid.FieldLayouts>
            <igDP:FieldLayout>
                <igDP:Field Name="Name" >
                    <igDP:Field.Settings>
                        <igDP:FieldSettings EditorType="{x:Type igEditors:XamComboEditor}"/>
                    </igDP:Field.Settings>
                </igDP:Field>
            </igDP:FieldLayout>
        </igDP:XamDataGrid.FieldLayouts>
    </igDP:XamDataGrid>
</Grid>

コンストラクターのコード ビハインドで grid1 の DataContext を設定しています。これは WPF 4.0 では機能しますが、3.5 では機能しません。3.5 では、「参照 'ElementName=grid1' でバインドするソースが見つかりません」というエラーが表示されます。3.5 でバインドを機能させるには、ObjectDataProvider を次のように使用する必要がありました。

<Grid Name="grid1">
    <Grid.Resources>
        <ObjectDataProvider x:Key="myData" ObjectType="{x:Type local:ViewModel}"></ObjectDataProvider>
        <Style TargetType="{x:Type igEditors:XamComboEditor}">
            <Setter Property="ItemsSource" Value="{Binding Source={StaticResource myData}, Path=Test}"/>
            <Setter Property="DisplayMemberPath" Value="Key"/>
        </Style>
    </Grid.Resources>
    <igDP:XamDataGrid DataSource="{Binding}" Name="xamDataGrid1" VerticalAlignment="Top" >
        <igDP:XamDataGrid.FieldLayouts>
            <igDP:FieldLayout>
                <igDP:Field Name="Name" >
                    <igDP:Field.Settings>
                        <igDP:FieldSettings EditorType="{x:Type igEditors:XamComboEditor}"/>
                    </igDP:Field.Settings>
                </igDP:Field>
            </igDP:FieldLayout>
        </igDP:XamDataGrid.FieldLayouts>
    </igDP:XamDataGrid>
</Grid>

最初のコード スニペットの ElementName バインディングが WPF 3.5 で機能しない、またはそこで何か問題を起こしたという既知の理由はありますか? 前もって感謝します。

4

0 に答える 0