WPFのDataGridの備忘録です。
■DataGridを更新させたくない場合は、IsReadOnly=”True”を使います。
また、表示ように作成したDataGridにDataTableをItemsSouceに指定すると、最後に不要な空行が表示されてしまいます。
そんな時も、IsReadOnly=”True”ですっきりです^^
■常に縦スクロールバーを表示するには、
VerticalScrollBarVisibility=”Visible”を設定します。
WPFのDataGridの備忘録です。
■DataGridを更新させたくない場合は、IsReadOnly=”True”を使います。
また、表示ように作成したDataGridにDataTableをItemsSouceに指定すると、最後に不要な空行が表示されてしまいます。
そんな時も、IsReadOnly=”True”ですっきりです^^
■常に縦スクロールバーを表示するには、
VerticalScrollBarVisibility=”Visible”を設定します。
WPFのDataGrid内でのStringFormatについての備忘録です。
DataGrid以外でも同じと思いますが、確かめていません。
今回行いたかったことは、LabelのContextにBindeingする際に、固定文字列(電話番号)をデータに付加したかったので、
以下のようにコーディングしたところ、正常に動きませんでした。。。
Context=”{Binding Path=TEL, StringFormat=電話番号:{0}}”
ところが、下のようにしたら上手く動きました^^
Content=”{Binding Path=TEL}” ContentStringFormat=”{}電話番号:{0}”
ちなみに、TextBoxでは下でも正常に動きます。。。。?奥が深いなぁ~
Text=”{Binding Path=TEL, StringFormat=電話番号:{0}}”
こういうのも有ります。
Text=”{Binding Path=Price, StringFormat=価格:{0:C}, ConverterCulture=ja-JP}”
Text=”{Binding Path=Price, StringFormat=価格:{0:N0}円}”
右上の閉じるボタンを無効化し、ダイアログWindowなどの誤閉じを防止する。
1)次のクラスを作成する。
Imports System.Windows.Interop
Public Class ClassNotClose
<System.Runtime.InteropServices.DllImport(“user32.dll”)> _
Shared Function GetSystemMenu(ByVal hWnd As IntPtr, _
ByVal bRevert As Boolean) As IntPtr
End Function
<System.Runtime.InteropServices.DllImport(“user32.dll”)> _
Shared Function EnableMenuItem(ByVal hWnd As IntPtr, _
ByVal uIDEnableItem As UInteger, _
ByVal uEnable As UInteger) As Boolean
End Function
Private Const MF_BYCOMMAND As UInteger = &H0
Private Const MF_GRAYED As UInteger = &H1
Private Const SC_CLOSE As UInteger = &HF060
Private hwndSource As HwndSource = Nothing
Public Sub DisEnable(winHndl As Object)
Dim hwnd As IntPtr
hwnd = DirectCast(PresentationSource.FromVisual(winHndl), HwndSource).Handle
Dim hMenu As IntPtr = GetSystemMenu(hwnd, False)
If hMenu <> IntPtr.Zero Then
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED)
End If
End Sub
End Class
2)閉じさせたくないWindowから呼び出す。(Loadedの中で等)
Dim oNotClose As New ClassNotClose
Private Sub Window2_Loaded(sender As Object, e As ystem.Windows.RoutedEventArgs) Handles Me.Loaded
oNotClose.DisEnable(Me)
End Sub
Windowサイズを変更させたくない場合、次のように赤文字列をXAMLに記述します。
<Window x:Class=”Window2″
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Title=”Window2″ Height=”300″ Width=”300″
ResizeMode=”NoResize”>
ただ、右上に「☓」が出たままですが。。。