C# MVVM:仅使用带有自定义对象的Messenger发送<&燃气轮机&引用;id";独特的?
我不喜欢我使用的Messenger(mvvm light toolkit),当我注册到DateTime并发送一些东西时,我的应用程序的其他部分也会获得datatime数据,因为它们注册到了“DateTime”类型 为了防止这种情况发生,我必须始终创建自定义对象并包装日期时间值。 那是斯帕蒂C# MVVM:仅使用带有自定义对象的Messenger发送<&燃气轮机&引用;id";独特的?,c#,wpf,mvvm,send,mediator,C#,Wpf,Mvvm,Send,Mediator,我不喜欢我使用的Messenger(mvvm light toolkit),当我注册到DateTime并发送一些东西时,我的应用程序的其他部分也会获得datatime数据,因为它们注册到了“DateTime”类型 为了防止这种情况发生,我必须始终创建自定义对象并包装日期时间值。 那是斯帕蒂 你如何解决这个问题?发送日期时间类型的消息对我来说似乎是个坏主意。。。它不够具体,没有任何意义 假设你收到一封只包含日期的信,而没有其他内容:你会怎么看?是生日,电影的发行日期,还是支付电话费的最后期限 没有
你如何解决这个问题?发送日期时间类型的消息对我来说似乎是个坏主意。。。它不够具体,没有任何意义 假设你收到一封只包含日期的信,而没有其他内容:你会怎么看?是生日,电影的发行日期,还是支付电话费的最后期限
没有上下文,日期(或字符串、int或任何基元类型)就没有任何意义。您需要创建特定的消息类型,这是您发送的信息有意义的唯一方式。发送日期时间类型的消息对我来说似乎不是个好主意。。。它不够具体,没有任何意义 假设你收到一封只包含日期的信,而没有其他内容:你会怎么看?是生日,电影的发行日期,还是支付电话费的最后期限
没有上下文,日期(或字符串、int或任何基元类型)就没有任何意义。您需要创建特定的消息类型,这是您发送的信息有意义的唯一方式。您可以使用令牌对象发送消息,然后仅注册使用该特定令牌发送的日期时间 我似乎记得拉伦特创建了这样一个类:
public class Notifications
{
public static readonly String SystemDateChanged = Guid.NewGuid().ToString();
public static readonly String SomeOtherDateChanged = Guid.NewGuid().ToString();
}
然后发送您的消息
Messenger.Default.Send(newSystemDateTime, Notifications.SystemDateChanged );
对SystemDateTime(而不是其他日期时间)感兴趣的各方将为其注册
Messenger.Default.Register<DateTime>(this, Notifications.SystemDateChanged, true,
d => { mydate = d; });
Messenger.Default.Register(此,Notifications.SystemDateChanged,true,
d=>{mydate=d;});
您可以使用令牌对象发送邮件,然后仅注册使用该特定令牌发送的日期时间
我似乎记得拉伦特创建了这样一个类:
public class Notifications
{
public static readonly String SystemDateChanged = Guid.NewGuid().ToString();
public static readonly String SomeOtherDateChanged = Guid.NewGuid().ToString();
}
然后发送您的消息
Messenger.Default.Send(newSystemDateTime, Notifications.SystemDateChanged );
对SystemDateTime(而不是其他日期时间)感兴趣的各方将为其注册
Messenger.Default.Register<DateTime>(this, Notifications.SystemDateChanged, true,
d => { mydate = d; });
Messenger.Default.Register(此,Notifications.SystemDateChanged,true,
d=>{mydate=d;});
好的,托马斯,这就是我的想法。那么,您是否为您发送的每个新datetime创建一个具有一个datetime属性的新的额外类?我为每种特定类型的消息创建一个message类,是的。您可以将其命名为message类。这门课有什么特别的吗?或者它只是一个带有属性datetime的自定义类?不,没有什么特别的,它可以是任何自定义类OK Thomas这就是我所说的。那么,您是否为您发送的每个新datetime创建一个具有一个datetime属性的新的额外类?我为每种特定类型的消息创建一个message类,是的。您可以将其命名为message类。这门课有什么特别的吗?或者它只是一个具有属性datetime的自定义类?不,没有什么特别的,它可以是任何自定义类