私はCaliburn.Microを使い始めました。すべての例ですべてが公開されています。私はこの方法を追加私のVMでCaliburn.Microがすべてのメソッドを公開する必要がありますか
x:Name="CloseMainWindow"
::私は、ボタンを追加することでこれをテストすることを決めた私はボタンをクリックすると
private void CloseMainWindow()
{
TryClose();
}
を、何も起こりませんし、私はブレークポイントにヒットしていません、メソッドをpublicに変更しても機能します。 これを行うための最良の方法はわかりません。
すべてのメソッドのICommandプロパティを作成できますか?
編集:私はちょうど上記の質問への答えを読んで、Caliburn.MicroにはICommandsがありません。だから私の元々の質問にはまだ答えが必要ですが、なぜすべてがVMに公開されなければならないのですが、これは安全ですか?
ごめんなさい。私はできるだけプライベートを使うように教えられていました。私は誰かがあなたのメソッドにアクセスし、それを公開した場合は意図していないときにそれを実行できると言われました。変数の代わりにプロパティを使用する理由は同じです。私が教えたことはあまりにも厳しいですか?私はまだ学んでいます、私たちは皆ですか? –
APIを書いているなら、publicメソッドはprivateよりも慎重に書かなければなりません。 (EXEを書いているのであれば気にする必要はありませんが、他のユーザーが使用する予定のDLLについては重要です)。APIで実装の詳細や依存関係を公開する必要はありません。たとえば、他の "init"メソッドを最初に呼び出さなかった場合は爆発します。あなたはそれを秘密にして逃げることができます。しかし、ボタンのクリックはパブリックメソッドと同じように(それ以上ではない場合)、実装の詳細を隠している方が良いでしょう。 –