WPF+XAMLでドラッグ&ドロップできる表の作成
データのバインド概念
ポイント
- View側がバインドされたデータ通知を知るにはINotifyPropertyChangedを実装する必要あり
- this.RasePropertyChangedでModel側からViewに変更通知をする
ListBoxの作成に参考にしたサイト。
こちらはListBoxの中身をバインドさせる方法
- コードで既にインスタンス化されているWPF内のインスタンスを使用する場合はbindingData = listBoxName.DataContextのように使用する
方法 : XAML でデータをバインディング可能にする | Microsoft Docs - ListではなくBindingListを使うと早い(INotifyPropertyChangedさえ不要になる)
ListBoxのダブルクリックイベント
【C#/WPF】ListBoxのダブルクリックイベントをうまく処理する - tinyjoker.net
- StyleはListBoxの中に書いたら動かなかった(DataBindのタイミングより先にListBoxItemを作成してしまう?)
- Window.Resourceの中に記載したら動くようになった(タイミングが後になった?)
ListViewのループ内でUserControlを使用してデータをBindingする所でハマった。
結論としてはListViewのItemsSource="{Binding tasks}"と記載しつつ、合わせてx:Name="taskListView"を定義。
UserControlでtask="{Binding ElementName=parent}"と記載するとUserControl内でtaskのフィールドを使用できるようになる。
※taskはUserControl内の変数
第5回 WPFの「データ・バインディング」を理解する (1/3):連載:WPF入門 - @IT
アイコンをVisualStudioに追加するには
[ VB.NET / C# ] プロジェクトのリソースに追加したイメージ画像を読み込む ( My.Resources / Properties.Resources ) – 行け!偏差値40プログラマー