web-dev-qa-db-ja.com

ListView.GridViewColumn(*)幅

[〜#〜] wpf [〜#〜]アプリケーションでListViewの代わりにDataGridコントロールを使用しています。差し上げたい *私の幅ListView.GridViewColumn、しかし私が提供するときはいつでも*幅からListView.GridViewColumn、コンパイル時エラーが発生します。 *幅からListView.GridViewColumn、 そのため ListView.GridViewColumn画面を最大化すると、余分なスペースを自動的に埋めることができます。

これに関するヘルプは非常に高く評価されます。ありがとう

37
Yogesh

その解決策を試してください:

<ListView>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="column1" x:Name="col1"/>
            <!--Column that shall resize: Width is set to the Actual Width of the helper field defined below-->
            <GridViewColumn Header="column2" 
                            Width="{Binding ElementName=helperField, Path=ActualWidth}"/>
        </GridView>
    </ListView.View>
    Test Text
</ListView>

<!--This is the hidden helper Grid which does the resizing -->
<Grid Visibility="Hidden">
    <Grid.ColumnDefinitions>
        <!--Width is bound to width of the first GridViewColumn -->
        <ColumnDefinition Width="{Binding ElementName=col1, Path=ActualWidth}"/>
        <!--Width is set to "Fill"-->
        <ColumnDefinition Width="*"/>
        <!--Correction Width-->
        <ColumnDefinition Width="10"/>
    </Grid.ColumnDefinitions>
    <!--This is the hidden helper Field which is used to bind to, using the "Fill" column of the helper grid-->
    <Grid Grid.Column="1" x:Name="helperField"/>
</Grid>

また、次のリンクで他のソリューションを見つけることもできます。

http://social.msdn.Microsoft.com/forums/en-US/wpf/thread/3ee5696c-4f26-4e30-8891-0e2f95d69623/

67
Bilal Hashmi

私はこれに少し違うアプローチを投稿しましたが、非常に信頼性が高く、パーセント幅の列を許可することがわかりました https://stackoverflow.com/a/10526024/41211 )上記の動的バインディングを使用してデザイナービューを常に再評価しようとしていたため、devenv.exeの処理が限界に達していることがわかりました。

3
GONeale