0

XamDataGrid非常に単純な要件があります。これは、バインディング式が満たされた場合に、myの複数の(すべてではなく、いくつかの)列の幅を0に動的に設定することです。

問題の列は、常に次の構造に従います。

<igDP:UnboundField Name="Data Field 1" BindingPath="SrcEntity.Field1" 
    Width="{Binding Path=DataContext.GetDynamicWidth}">
    <igDP:Field.Settings>
        <igDP:FieldSettings AllowHiding="Always" AllowResize="True" />
    </igDP:Field.Settings>
</igDP:UnboundField>

アプリケーションをデバッグすると、DataContext.GetDynamicWidthは期待どおりに呼び出され、幅の値を期待どおりに返します(またはのいずれ0Double.NaN)。ただし、グリッドでは、幅に動的バインディングがあるこれらの列の実際の幅は変更されません。

これがインフラジスティックスのバグなのか、それともここで何かが足りないのか、誰か教えてもらえますか?

注:次のフィールド設定も試しました。

<igDP:FieldSettings AllowHiding="Always" 
    AllowResize="True" CellWidth="{Binding Path=DataContext.GetDynamicWidth}" />

これも失敗しました。

4

1 に答える 1

1

Field はビジュアル ツリーまたは論理ツリーの一部ではないため、DataContext にバインドすることはできません。これを回避するには、代わりに StaticResource にバインドします。

于 2012-10-25T20:22:52.767 に答える