WinUI3 メモ x:Bind - DrumMidiEditor/DrumMidiEditorApp GitHub Wiki
参考URL
https://docs.microsoft.com/ja-jp/windows/uwp/data-binding/function-bindings
Mode
-
OneTime
Page読み込み時に一度だけデータ取得 -
OneWay
Page読み込み時に一度だけデータ取得。
データに対して変更があった際に、画面側にも反映する。
但し、自動で変更してくれるわけではなく意図的に通知が必要となる。 -
TwoWay
OneWay の機能+画面上で入力した値は、データに書き込みに行く。
但し、Changedイベントなどでは、データに書き込みはまだ行われていない為
イベント内でデータを使用する場合には注意が必要。
ListView_SelectionChanged イベントなどではデータの書き換え後に処理される。
<TextBox Text="{x:Bind MusicInfo.BgmFilePath, Mode=TwoWay}"
TextChanged="MusicInfoBgmFilePathTextBox_TextChanged" />
public sealed partial class PageMusic : Page, INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged = delegate { };
public void OnPropertyChanged( [CallerMemberName] string? aPropertyName = null )
{
PropertyChanged?.Invoke( this, new( aPropertyName ) );
}
// MusicInfoの情報に変更あった際に実行し、意図的にバインド変数に変更があったよと知らせる。
public void ReloadMusicInfo()
{
OnPropertyChanged( "MusicInfo" );
//OnPropertyChanged( "MusicInfo.BgmFilePath" );
//OnPropertyChanged( "MusicInfo.BgmFilePath.AbsoulteFilePath" );
}
}