1

私は、MS SQL サーバーをデータ ソースとして接続した非常に基本的な WPF アプリケーションを使用しています。私のデータグリッドは次のように宣言されています:

<DataGrid HorizontalAlignment="Left" Margin="10,88,0,0" VerticalAlignment="Top" Height="456" Width="1018" ItemsSource="{Binding}" />

アプリを実行すると、データベースからグリッドにロードされたデータが表示されますが、列のキャプションが奇妙に見えます。アンダースコアを最初に含むキャプションはすべて、このアンダースコアが削除され、some_titleに変わりsometitleます。

これは、アンダースコアが次の記号をニーモニックに変換するための制御記号として認識されているためであることがわかりました。

この動作を無効にするにはどうすればよいですか?

単一のアンダースコアを 2 つ、つまり.some__titleの代わりにsome_title. しかし、私のデータ ソースは外部データベースであるため、それに影響を与えることはできません。それともコンバーターで?

RecognizesAccessKeyプロパティをに変更するのが最善の方法だと思いましたfalseが、残念ながらアクセスできません。

私はWPFが初めてです、あなたの助けに感謝します!

PS彼女はスヌープの写真です(それが役立つ場合) DataGrid のスヌープ

編集:私のターゲットフレームワークは.net 4.5です

4

4 に答える 4

5

これは古い質問ですが、解決しました。それは誰かを助けるかもしれません。

<DataGrid HorizontalAlignment="Left" Margin="10,88,0,0" VerticalAlignment="Top" Height="456" Width="1018" ItemsSource="{Binding}" >
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="DataGridColumnHeader">
                        <Border>
                            <ContentPresenter 
                                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
                                RecognizesAccessKey="False" />
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGrid.ColumnHeaderStyle>
</DataGrid>
于 2015-06-02T08:03:30.593 に答える
1

カスタム列を使用できます。カスタム列を使用する場合は、必要に応じて列のキャプションを定義できます。

于 2013-08-14T09:34:27.830 に答える