まず、私の質問に答えたすべての人に感謝したいと思います。
私はこれに取り組んでいましたが、私は解決策を考え出しました。
最初にパブリックプロパティとして_uosDepositorFrequency.Valueと_btnScheduleB.Enabledを公開し、ビューインターフェイスを更新しました。預託頻度の列挙型を定義するのに少し時間がかかりました。
public bool EnableScheduleB
{
get
{
return _btnScheduleB.Enabled;
}
set
{
_btnScheduleB.Enabled = value;
}
}
public DepositFrequency DepositorFrequency
{
get
{
return (DepositFrequency)_uosDepositorFrequency.Value;
}
set
{
_uosDepositorFrequency.Value = (int)value;
}
}
は、その後、私は私のプレゼンターに元の関数の本体をコピーして、私が作成したプロパティを使用するように変更しました。 _uosDepositorFrequencyコントロールが他の場所で初期化されているため、元の関数のnullチェックが不要になりました。
public void UpdateScheduleBStatus()
{
ReturnView.EnableScheduleB = ReturnView.DepositorFrequency == DepositFrequency.Semiweekly;
}
最後に_uosDepositorFrequency_ValueChangedイベントハンドラがUpdateScheduleBStatusを呼び出すように更新されました。
private void _uosDepositorFrequency_ValueChanged(object sender, System.EventArgs e)
{
Presenter.UpdateScheduleBStatus();
}
コメント歓迎。
すべてのビジネスルールをUIレイヤーから移動する必要が本当にありますか?これは通常、複雑さが増し、時には周囲に広がる論理(特にあなたが見せている種類の論理)で生活する価値があります... –
ビジネスルールを分離しているのは、フォームが作成されるためです置き換えられたが、ルールはまだ残っている。 –
十分に公正。私は以下の答えであなたに一つの選択肢を与えました。しかし、個人的に私はそれをそのまま残し、置き換えをしている人のためにコメントしています。一般に、複数のUI間でビジネスルールを共有する場合にのみ意味があります。 –