ボイラーのチラシ裏

テクノロジーやフィギュア、ゲームに関すること

【MAUI】SwipeViewの使い方

今年の目標

今年、技術系の記事を書きまくって、Microsoft MVP受賞を狙いたいと思います。

がんばります。

今日から週一くらいの頻度で、主に.NET MAUI の記事を書いていきたいと思います。

たまに気分転換に、WPFの記事も書くかもしれません。私はWPFで育ったので。

本題

さて、MAUIには Xamarin.Forms から受け継がれたコントロールが多いようですね。

今回はその一つである、SwipeView を見ていきたいと思います。

SwipeViewは例えば CollectionViewなどの複数のエントリの一つを左右にスワイプすると出てくるボタンのようなものです。

よく、背景が赤の「削除/Delete」のようなボタンが設けられていることが多い気がします。

iOSの純正「メール」アプリ

もちろん、SwipeView単独でも動作しそうなものですが、今回のサンプルではCollectionViewと組み合わせてみたいと思います。

まずこちらの動画をご覧ください。

youtube.com

ではソースコードをどうぞ。

github.com

詳しく説明

今回はCollectionViewのItemTemplateの中で、SwipeViewを扱うようにしています。

CollectionViewのItemsSourceに与えられたコレクションは ReactiveCollectionインスタンスです。

ItemTemplate内のBindingContextにはstring型が入っているため、SwipeItemのCommandには

Command="{Binding BindingContext.LeftSwipeItemCommand, Source={x:Reference page}}"

みたいな書き方をしています。Sourceは x:Name="page"と名付けられた、ContentPageインスタンスに結びつきます。

つまり、ContentPageインスタンスのBindingContextにはSwipeViewSamplePageViewModelインスタンスが入っており、そのLeftSwipeItemCommandをバインディングしているというわけです。

この書き方はWPFに比べて、ややわかりやすく書きやすくなったと言えるでしょう。x:Reference大好き❤

ちなみにSwipeItemのCommandParameterは "{Binding}"となってます。これはSwipeItemのBindingContextをそのまま充てるという意味ですが、SwipeItemのBindingContextはさかのぼると、DataTemplateのx:DataTypeで指定されている型(ここではstring型)で、DataTemplateのデータはCollectionViewのItemsSourceに当てられているコレクションの要素になるので、つまりstringインスタンスが親から継承されてきて、CommandParameterはその値をそのままつかっているという意味になります。

public ReactiveCommandSlim<string> LeftSwipeItemCommand { get; } = new();

public ReactiveCommandSlim<string> RightSwipeItemCommand { get; } = new();

LeftSwipeItemCommand.Subscribe(async str =>
{
    await Shell.Current.CurrentPage.DisplayAlert("LeftSwipeItem", "LeftSwipeItem がタップされました。", "OK");
}).AddTo(_disposables);
RightSwipeItemCommand.Subscribe(async str =>
{
    await Shell.Current.CurrentPage.DisplayAlert("RightSwipeItem", "RightSwipeItem がタップされました。", "OK");
}).AddTo(_disposables);

あとは、ViewModel側で煮るなり焼くなり好きにしてくれっていうことですね。

今回はDisplayAlertを呼び出しています。

懸念点

上の動画を見てもらえるとわかると思うのですが、

このSwipeViewはアニメーションが多少ぎこちないです。

もしかしたら、このアニメーションが許容できなくて企業で開発している場合は、採用を見送ることもあるかと思います。

よりなめらかなSwipeViewを求めて、カスタムコントロールを作るのもありかもしれません。

吉野家の牛すき(並盛)肉増量祭について

こんにちわ。良い週末をお過ごしでしょうか。

さて、今回は吉野家で2024年1月12日(金)11時から開催されている

牛すき(並盛)肉増量祭について取り上げます。

キャンペーンの公式リリースについてはこちら。

www.yoshinoya.com

早速、昨日(2024年1月12日)のお昼12時頃に行きました。

私は牛すき鍋膳の並盛を注文しました。

このとき私は牛すき鍋膳の並盛を頼むと、肉が増量されるものだと思っていたのですが、

肉は並盛の量でした。

この事を若干憤って、私はXにポストした内容がこちらです。

すると、このツイートに対して吉野家の現店員さんと思われる方からタレコミが来ました。

おそらく、キャンペーンが実施されていても、女性の方とか少食の方は増量されても困るので、吉野家は、客が並盛を頼んだらそのままの増量していない肉の量を出しているようです。

翌日、今度は牛すき鍋膳の大盛を頼んだところ。。。

大盛の量の肉+いくぶんか増しされた野菜+普通の量のうどん

が盛られてきました。これは私の体感です。

伝票を見て、驚かないで欲しいのですが、

牛すき鍋膳大盛の正規の値段が印字されていて

「あれ、キャンペーン適用されてない?」と早とちりしそうになります。

レジでレシートを受け取ると、正しく「牛肉増量110円引」されているのがわかりますね。

結論

吉野家の牛すき(並盛)肉増量祭に参加したくば、牛すき鍋膳/牛すき丼の 大盛 を頼むべし!!!

あとがき

周りのお客さんも牛すき鍋膳並盛を頼んでしまって、困惑していたようです。

また、新入りの店員さんも同様に困惑していたようです。

このキャンペーンの周知の仕方がちょっとまずかったのかなぁ。

Rantogeカムクロック届いた

以前、machi-yaにて支援した「Rantogeカムクロック」が届きました!

camp-fire.jp

細かい作業はあまり得意ではないのですが、マシンメカニズムに惹かれて支援しました。

外箱は小破。まあ許容範囲内。

いろいろな部品があります。たくさんあります。 なくさないようにしなければ。

ここで Rantogeカムクロックチュートリアルが用意されているので見てみます。

rantoge.shopnowjp.com

引用:事前に準備するもの

プラスドライバーはあります。 ペンチもあります。 kure556も確かあったはず。

ピンセット、サンドペーパーは手持ちがなかったような。

Amazonで注文します。

時間を作って、土日に組み立てたいなーと思います。 それまで部品はなくさないように気をつけます。

組み立てたのしみだなぁ~。

TODO:土曜日午前にチュートリアルの ①パーツリストの確認 から着手する。

フィギュア届いた(2023/12/9)

あみあみさんからフィギュアが届いたー!

【特典】アズールレーン 鎮海 奇響華殿ver. 1/6 完成品フィギュア[AniGift×AniGame]【送料無料】《08月予約》 https://www.amiami.jp/top/detail/detail?scode=FIGURE-147424 ※リンク切れ

特典のアクリルスタンド。彩度が薄め?

おっぱいは大きい。。。

背中もきれいだし、おしりがちょっと見えているのがセクシー。

溢れんばかりの胸。

黒のチャイナドレスのスリットから浮き出たスラリと長い脚。

我が家のアズールレーンファミリーの棚。

そろそろ埋まってきたなぁ。

1/6サイズとはいえ、他の1/7フィギュアと高さが同じくらい ということは、鎮海は身長低めの設定なのだろうか。 それでも落ち着いた雰囲気と大人っぽい色気を十分に放っていた。 黒の胸開きチャイナドレスの衣装はすごく似合っている。

フィギュア届いた(2023/12/7)

あみあみさんからフィギュアがとどいたよー!

【特典】アズールレーン ボルチモア スプレンディッド・ギアVer. 1/7 完成品フィギュア[APEX]【送料無料】《在庫切れ》

https://www.amiami.jp/top/detail/detail?scode=FIGURE-149670

ダンボールを開梱すると、保護紙に包まれたパッケージ。

パッケージに描かれた恵体がもう美しすぎます。。。 はぁっ、とため息をつきたくなる程の。

アクリルスタンドが付属していました。

旗を取り付けた後。

旗を取り付ける時、旗の中腹あたりに何処かに差し込むための突起があります。 どこに差し込むかというと、台座のタイヤにあります。

さらに旗の末端を支える透明のプラスチックつっかえ棒で支えます。

はぁ、もう美しすぎます。。。

服の光沢感がたまらない。 特にニーハイブーツのツヤツヤ感がたまらん。

ガラスケースに安置しましょーねー。

フィギュア届いた(2023/11/3)

あみあみさんからフィギュアが届いたよー!

原神 蛍 1/7 完成品フィギュア[コトブキヤ] https://www.amiami.jp/top/detail/detail?gcode=FIGURE-142926

厳重にフィギュアに緩衝ビニールが巻かれとる。

ガラスケース内の原神コーナーにまた一人増えた~♪

フィギュアが届きました (2023/10/19)

あみあみさんから予約注文していたフィギュアが届きました~。

アズールレーン 愛宕&高雄 レースクイーンVer. 1/7 完成品フィギュア[アルター]【同梱不可】【送料無料】《発売済・在庫品》 https://www.amiami.jp/top/detail/detail?scode=FIGURE-147280

あみあみさんの梱包に気合が入っている。

物流センター拡張移転したとプレスリリースがあったが、それの影響かな。

いい梱包だと思うので続けてほしい。

こういう魅力的なフィギュアを手に入れた時

写真を撮るのは胸か、脚(尻)かどっちを選ぶ?

というのは永遠のテーマのように思える。。。

このフィギュアはつぶれおっぱいが素敵だし、

脚線美もたまらなく好き。

アルターさんは素晴らしいフィギュアを作ってくれたと思う。

アズールレーンフィギュアを飾る棚がどんどん埋まっていく。。。