Caliburn.Microを用いてWPFアプリケーションを作成する(4)
Buttonを追加し、挙動を設定する
概要
WPF in C# with MVVM using Caliburn Microの54分目あたりからを参考に、前回のComboBox追加の内容に、Buttonを追加する。
完成形
ボタンを押すとテキストボックスがクリアされるようにする。
実装
今回も動画を見ながら進める。
ViewにButtonを追加する
とりあえずShellViewに次のようにボタンを追加する。
<!-- row 4 -->
<Button Grid.Row="4" Grid.Column="1" >Clear</Button>
ShellViewに実行時の関数を追加する
public void ClearText()
{
FirstName = "";
LastName = "";
}
この内容をViewに反映するため、さきほどのxamlを書き換える。
ClearText呼び出しを追加
ボタンを押すとTextBoxに紐づけられたFirstName, LastNameが""に設定されるので、結果として紐づけられたTextBoxの内容が空欄になる。
<Button Grid.Row="4" Grid.Column="1" x:Name="ClearText">Clear</Button>
内容が入っている時だけクリアされる条件をつける
CanClearTextを実装する。
(動画参照 1:05:00付近)
まだ理解がおいついてないが、なんらかの命令規則(バリデーション?)によって動いてる模様。(→2020.6.15追記)
xamlを変更してないが、ClearTextに対してCanClearTextを追加するだけで、挙動が変わる(ちょっとびっくりした)
いずれかのTextBoxに値があるときだけEnableになる条件
public bool CanClearText(string firstName, string lastName)
{
// throw new NotImplementedException();
return !String.IsNullOrWhiteSpace(firstName) && !String.IsNullOrWhiteSpace(lastName);
}
public void ClearText(string firstName, string lastName)
{
FirstName = "";
LastName = "";
}
完成
値が入っているときにClearボタンを押すと、TextBoxが空欄になる。
追記
Canほげほげについて、どこに説明があるのかとCaliburn.Microのドキュメントを頑張って読んでみたら、なんのことはない一番先頭のIntroductionに書かれてた(おぢさんなので見つけたときは「(爆)」とか言いたくなったorz)
Can~はActionMessageという機構になっている。
さらにイベントトリガになる Action Conventions という規約も存在しているみたいなので、あとで真面目に読む。
Author And Source
この問題について(Caliburn.Microを用いてWPFアプリケーションを作成する(4)), 我々は、より多くの情報をここで見つけました https://qiita.com/paichi81@github/items/f9720b8a46b5948254a9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .