.NET Framework

1/2ページ

[XAML] ループして繰り返し出力する方法

XAMLでループ XAMLを描いているときに任意のコントロールをループして出力したくなったのでメモ。 ViewModel に MyList というリスト型のプロパティを持たせて、これをループして画面に列挙する例を考えます。 まず、コードビハインドに ViewModel を DataContext にバインディングしておきます。 public partial class MainWindow : W […]

[WPF] ObserbleCollection で編集(更新)を変更通知で反映したい

リスト(コレクション)データをバインドして変更通知したい WPF でリスト(コレクション)データをバインドして、変更通知を行う方法をまとめます。特にバインドされたデータの値を書き換える場合や、バインドされたデータのソートは、単純に ObservableCollection を使用するだけではうまくいきません。 この記事では例として以下のような操作について実装方法をまとめます。 データの追加 データ […]

[WPF] Binding を強制的に更新反映する [C#]

WPF バインドしている値を強制的に反映したい WPF ではビューに値をバインドできます。 バインドしている値の変更通知を行うとビューにその値が反映されますし、ビューの入力値が更新されれば何かしらのタイミングでバインドしている値が更新されます。 ただ場合によっては任意のタイミングで明示的に、強制的にコード上からバインドを更新したい場合があります。そのような場合にはバインド評価更新用のメソッドを実行 […]

[C#][VB.NET] エクスプローラーで指定のフォルダを開く方法

フォルダに関連付けられたソフトで開く方法 Process.Start() は指定したパスのアプリを実行します。フォルダは通常エクスプローラーが関連づけられています。 したがってフォルダを指定するとエクスプローラーでそのフォルダを開いてくれます。 C# // using System.Diagnostics; Process.Start(@"C:\work"); VB.NET Process.Sta […]

[WPF] プログレスバーの使い方まとめ

WPF でプログレスバーを使う アプリ内で時間のかかる処理を行う場合、プログレスバーを画面に表示することでユーザーはその進捗を直感的、視覚的に把握できるようになります。 何の表示もないまま時間のかかる処理を実行すると、画面が固まっているように見えてユーザーを不安にさせてしまいます。したがって重たい処理を行う時はプログレスバーなどで進捗を示してあげましょう。 WPFには標準のコントロールとして、Pr […]

[WPF] Visiblity に bool値をバインドする方法(BooleanToVisibilityConverter)

コントロールの表示非表示を切り替える Visibility 要素の表示状態を指定するプロパティ Visibility は Enum です。そのため、単純にbool値をバインドして要素の表示を切り替えることはできません。 しかし表示非表示を切り替えるためにbool値で制御したい場面は多々あります。 基本的には異なる型でバインドするには Converter を作成するのが作法です。ほとんどの場合自作す […]

[WPF] 初期フォーカスをXAML上で設定する方法

WPFで初期フォーカスを設定したい WPFの画面を作成しているときに、初期フォーカスを特定のコントロールに設定したいことがありました。その方法を調べたのでメモします。 focus() Window の Loaded イベントでフォーカスしたいコントロールの focus() を呼ぶ方法があります。 private void Window_Loaded(object sender, RoutedEve […]

[WPF] Windowを閉じずに隠しておくための実装

WPF の画面表示が遅いので何とかしたい WPFではリッチな画面を作れる反面、画面にコントロールが多い場合はそれなりのコストがかかってしまいます。 頻繁に画面を閉じたり開いたりする場合、開きっぱなしにしたほうが操作の体感速度が改善する場合があります。 ということでその方法をまとめます。 SubWindow を一度開いたら閉じずに隠したままにします。 再利用する画面をシングルトンにして、閉じずに隠す […]