履歴からクリップボードへ書き戻す
1809の履歴関係のAPIには、履歴をクリップボードへ書き戻す機能もあります。
サンプルアプリでは、次の画像のように実装してあります。履歴アイテムのどれかをクリックすると、それがクリップボードへ書き戻されます。次に貼り付け操作を行うと、クリックした履歴アイテムが貼り付けられるというわけです。なお、履歴アイテムはそのまま履歴リストに残ります。
これは、ClipboardクラスのSetHistoryItemAsContent静的メソッドを、書き戻したい履歴アイテムのClipboardHistoryItemオブジェクトを引数にして呼び出せば実現できます。
セルのデータには履歴アイテムのデータを表すClipboardHistoryDataオブジェクトがバインドされるように画面を作ってあります。グリッドのSelectionChangedイベントハンドラーに渡される新しく選択されたデータは、クリックされた履歴アイテムを持つClipboardHistoryDataオブジェクトになります。そこから履歴アイテム(ClipboardHistoryItemオブジェクト)を取り出して、SetHistoryItemAsContent静的メソッドを呼び出します(次のコード、MainPage.xaml.cs)。
private void AdaptiveGridViewControl_SelectionChanged(object sender,
SelectionChangedEventArgs e)
{
var selectedData = e.AddedItems.FirstOrDefault() as Data.ClipboardHistoryData;
if (selectedData != null)
{
Clipboard.SetHistoryItemAsContent(selectedData.HistoryItem);
}
}
