実行環境
C# WPF
.Net framework 4.7.2
実現したいこと
親画面よりモーダル画面を呼び出し時、キャッシュで保持している値をモーダル画面のプロパティへバインドし、モーダル画面の表示位置を動的に変更する。
試したこと
SubWindow.xaml.csクラスにてLoadedイベントの実装を行いました。
実装したソースコードは下記の通りです。
実行結果(出来なかったこと)
(追記 2019/08/20)
モーダル画面のロード時にキャッシュへセットした値の表示位置にモーダル画面が表示されませんでした。
質問したいこと
(追記 2019/08/20)
コードビバインドにてプロパティをバインド後、プロパティの値変更を反映させるには何か処理が必要でしょうか?
1. SubWindow.xaml
<window x:Class="Hoge.SubWindow" Loaded ="LoadEvent" Top ="{Binding Top, Mode="TwoWay}" Left ="{Binding Left, Mode="TwoWay}" > <!--省略-->
2. SubWindow.xaml.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Hoge { /// <summary> /// SubWindow.xaml の相互作用ロジック /// </summary> public partial class SubWindow : Window { SubWindow window; public SubWindow() { InitializeComponent(); } ///////////////////////////////////// /// 画面ロード時のイベント ///////////////////////////////////// public void LoadEvent(object sender, RoutedEventArgs e) { window = new SubWindow(); // キャッシュ部品より取得した値をプロパティへセットする window.Top = CacheUtil.GetValue("TopValue"); window.Left = CacheUtil.GetValue("LeftValue"); } } }
最後に
当方、WPF初心者に付きお手柔らかによろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー