public MainPage() { this.InitializeComponent(); ViewModel = new ViewModels.MainViewModel(); ViewModel.PropertyChanged += ViewModel_PropertyChanged; DataContext = ViewModel; }
internal async Task ShareTargetActivateAsync(ShareTargetActivatedEventArgs args) { ViewModel = new ViewModels.MainViewModel(); ViewModel.PropertyChanged += ViewModel_PropertyChanged; DataContext = ViewModel; // ビットマップファイルの場合 if (args.ShareOperation.Data.Contains(StandardDataFormats.StorageItems)) { var items = await args.ShareOperation.Data.GetStorageItemsAsync(); // ToDo: 複数ファイルへの対応 var file = items.FirstOrDefault() as Windows.Storage.StorageFile; await ViewModel.OpenFileAsync(file); } // ビットマップデータの場合 else if (args.ShareOperation.Data.Contains(StandardDataFormats.Bitmap)) { var reference = await args.ShareOperation.Data.GetBitmapAsync(); using (var stream = await reference.OpenReadAsync()) { await ViewModel.OpenStreamAsync(stream); } } Window.Current.Content = this; Window.Current.Activate(); // [共有]で呼ばれたときは、コマンド実行後にウィンドウを閉じるようにする。[共有]ボタンは無効化 // ViewModel.FromShare = true; バグのため無効化 ViewModel.Window = Window.Current; ShareButton1.IsEnabled = false; ShareButton2.IsEnabled = false; }