我有一个项目(WCF,XAML,C#),在这个项目中我有一个中介类(遵循中介模式)。它允许类在某些操作完成后注册回调(例如从数据库加载数据)。
中介的“注册”方法如下所示:
public void Register(Action<Object> callback, ViewModelMessages message)
{
internalList.AddValue(message, callback);
}
然后在某些点通知注册的类,从而调用回调。一切正常。
问题是当我尝试在动作完成时传递bool类型的变量。在这种特殊情况下,我希望使用此中介模式传递消息,以说明何时发生某种编辑(用户输入编辑数据)。它应该传递'true'或'false'。所以,你会想到一个布尔类型。
希望接收消息的类侧注册如下:
Mediator.Mediator.Instance.Register(
(Object o) =>
{
// o is boolean
if (o == null)
return;
if ((o as bool) == true)
// Editing in progress
else
// Editing over ");
}, Mediator.Mediator.ViewModelMessages.EditCharacterMode);
现在告诉我的是,这个对象'o'不能是bool,因为bool不可为空。
我觉得我可以用一种丑陋的方式来解决这个问题,比如只用一个bool或类似的东西来制作一个类,但是因为这肯定会经常出现,我想知道是否有优雅或者更为公认的解决方案。
感谢您的时间。