3

レイアウトを使用して多くのListViewコントロールを備えたアプリケーションがありGridViewます。これらはすべてカスタムを使用しますStyle customStyleListViewこれらすべてのコントロールで列の並べ替えを無効にしたい。

既存のスタイルを使用してすべてのコントロールに触れることなくこれを行うことはできますか?私はこれを試しましたが、うまくいかないようです:

<Style x:Key="customStyle"
       BasedOn="{StaticResource ResourceKey={x:Type ListView}}"
       TargetType="{x:Type ListView}">
    <Setter Property="GridView.AllowsColumnReorder" Value="False" />
    ...
</Style>

ありがとう!

更新:これが不可能な場合、アプリケーションでデフォルトで列の並べ替えを無効にする方法はありますか?

更新: 私もこれを試しましたが、機能しません。StyleおそらくGridViewにプロパティがないためです。

<Style TargetType="{x:Type GridView}">
    <Setter Property="AllowsColumnReorder" Value="False" />
    ...
</Style>
4

5 に答える 5

6

これがあなたがすべきことです:

このスタイルの定義では

<Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="ScrollViewer">

あります

<GridViewHeaderRowPresenter

また、属性AllowsColumnReorderがfalseにハードコードされています。

..。

私は知っています...2年前のスレッド。しかし、私は人々がまだそれを読んでいるに違いない。

于 2014-09-07T19:24:53.390 に答える
1

この属性をdatagridタグに追加するだけです

CanUserResizeColumns="False"
于 2017-01-28T08:36:15.143 に答える
0

ListViewコントロールに添付された依存関係プロパティを使用してこれを解決しました。このプロパティは、GridViewにプロパティを設定します。私のスタイルから、この添付された依存関係プロパティを設定できます。それでも良い解決策ではありませんが、それは機能します。

于 2012-08-15T11:48:11.613 に答える
0

この答えを確認してください。

GridViewこのプロパティを使用して、ページ内のすべてのデフォルトスタイルを設定してみてください。

編集:から継承する新しいクラスを作成しますGridView。また、コンストラクターのAllowsColumnReorderプロパティの値を変更するか、静的コンストラクターの依存関係プロパティのデフォルト値AllowsColumnReorderPropertyをfalseに変更します。そして、このクラスをすべてのページのリストビューに使用します。

編集2:依存関係プロパティをオーバーライドする最良の方法-静的コンストラクターでOverrideMetadataメソッドを使用します。

私は次のようなものを使うのに疲れました

<Setter Property="(ListView.View).(GridView.AllowsColumnReorder)" Value="False"/>

しかし、それはコンパイルされません。

于 2012-07-05T17:39:33.623 に答える
0

例で削除x:keyしてapp.xamlに移動しGridView、アプリ内のすべてのデフォルトスタイルにすることができます。

于 2012-07-05T17:43:13.737 に答える