当前位置: 首页>>代码示例>>C#>>正文


C# Messenger.Register方法代码示例

本文整理汇总了C#中Messenger.Register方法的典型用法代码示例。如果您正苦于以下问题:C# Messenger.Register方法的具体用法?C# Messenger.Register怎么用?C# Messenger.Register使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Messenger的用法示例。


在下文中一共展示了Messenger.Register方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MessageWithoutParameterIsReceived

        public void MessageWithoutParameterIsReceived()
        {
            Messenger target = new Messenger();

            bool received1 = false;
            bool received2 = false;

            target.Register("MESSAGE", (Action)(() => received1 = true));
            target.Register("MESSAGE", (Action)(() => received2 = true));

            target.NotifyColleagues("MESSAGE");

            Assert.IsTrue(received1);
            Assert.IsTrue(received2);
        }
开发者ID:ssickles,项目名称:archive,代码行数:15,代码来源:MessengerTests.cs

示例2: FlyoutStaysOpenIfWanted

        public void FlyoutStaysOpenIfWanted()
        {
            // Arrange
            var currentProject = new ProjectViewModel( new Project { Id = 123 } );
            var messenger = new Messenger();
            var todoRepoMock = new Mock<ITodoRepository>();

            bool messageReceived = false;
            messenger.Register<FlyoutMessage>( this, msg => { if( msg.FlyoutName == FlyoutMessage.AddEntryFlyoutName ) messageReceived = true; } );

            var vm = new AddEntryViewModel( Enumerable.Empty<TagViewModel>(), currentProject, todoRepoMock.Object, messenger )
            {
                Summary = "summary"
            };

            // Act
            vm.StayOpen = true;
            vm.AddCommand.Execute( null );
            bool stay = messageReceived;

            vm.Summary = "summary";
            vm.StayOpen = false;
            vm.AddCommand.Execute( null );
            bool dontStay = messageReceived;

            // Assert
            Assert.IsFalse( stay );
            Assert.IsTrue( dontStay );
        }
开发者ID:TheSylence,项目名称:GSD,代码行数:29,代码来源:AddEntryViewModelTests.cs

示例3: AddUsesCorrectValues

        public void AddUsesCorrectValues()
        {
            // Arrange
            var tags = new[]
            {
                new TagViewModel( new Tag {Id = 1, Name = "Tag1"} ),
                new TagViewModel( new Tag {Id = 2, Name = "Tag2"} )
            };

            var currentProject = new ProjectViewModel( new Project { Id = 123 } );

            var messenger = new Messenger();
            bool addMessageReceived = false;
            messenger.Register<EntryAddedMessage>( this, msg => addMessageReceived = true );

            var todoRepoMock = new Mock<ITodoRepository>();
            todoRepoMock.Setup( x => x.Add( It.Is<Todo>( t => t.Summary.Equals( "summary" ) && t.Details.Equals( "details" ) && t.Project.Id == 123 ) ) ).Verifiable();
            todoRepoMock.Setup( x => x.Update( It.Is<Todo>( t => t.Tags.First().Id == 2 ) ) ).Verifiable();

            var vm = new AddEntryViewModel( tags, currentProject, todoRepoMock.Object, messenger )
            {
                Summary = "summary",
                Details = "details"
            };

            // Act
            vm.Tags[1].IsSelected = true;
            vm.AddCommand.Execute( null );

            // Assert
            todoRepoMock.VerifyAll();
            Assert.IsTrue( addMessageReceived );
        }
开发者ID:TheSylence,项目名称:GSD,代码行数:33,代码来源:AddEntryViewModelTests.cs

示例4: ColleaguesAreNotifiedInRegistrationOrder

        public void ColleaguesAreNotifiedInRegistrationOrder()
        {
            Messenger target = new Messenger();

            int notificationCounter = 0;
            int notified1 = 0;
            int notified2 = 0;

            target.Register("MESSAGE", (Action)(() => notified1 = ++notificationCounter));
            target.Register("MESSAGE", (Action)(() => notified2 = ++notificationCounter));

            target.NotifyColleagues("MESSAGE");

            Assert.AreEqual(1, notified1 );
            Assert.AreEqual(2, notified2);
        }
开发者ID:ssickles,项目名称:archive,代码行数:16,代码来源:MessengerTests.cs

示例5: Control_Loaded

        private void Control_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            var messenger = new Messenger();

            messenger.Register<UpdateHeaderMessage>(this, m => UpdateHeader(m));

            DataContext = new ControlViewModel(messenger);
        }
开发者ID:gotdibbs,项目名称:magician,代码行数:8,代码来源:Control.xaml.cs

示例6: DeleteCommandRaisesAddNewCmdApplicationConfigurationEvent

        public void DeleteCommandRaisesAddNewCmdApplicationConfigurationEvent(IFixture fixture)
        {
            var messenger = new Messenger();
            var isInvoked = false;
            messenger.Register(this, (DeleteCmdApplicationConfigurationEvent message) =>
            {
                isInvoked = true;
                Assert.Equal(new DeleteCmdApplicationConfigurationEvent(), message);
            });

            var sut = CreateMainViewModel(fixture, messenger);
            sut.DeleteCommand.Execute(new object());
            Assert.True(isInvoked);
        }
开发者ID:rahulpnath,项目名称:clal,代码行数:14,代码来源:MainViewModelTests.cs

示例7: MessageWithParameterIsReceived

        public void MessageWithParameterIsReceived()
        {
            Messenger target = new Messenger();

            bool received = false;

            string paramValue = "whatever";

            target.Register("MESSAGE", (Action<string>)(param => received = (param == paramValue)));

            target.NotifyColleagues("MESSAGE", paramValue);

            Assert.IsTrue(received);
        }
开发者ID:ssickles,项目名称:archive,代码行数:14,代码来源:MessengerTests.cs

示例8: TestMultipleMessengerInstances

        public void TestMultipleMessengerInstances()
        {
            var messenger1 = new Messenger();
            var messenger2 = new Messenger();

            var recipient11 = new TestRecipient1();
            var recipient12 = new TestRecipient1();
            var recipient21 = new TestRecipient2();
            var recipient22 = new TestRecipient2();

            messenger1.Register<string>(recipient11, recipient11.ReceiveMessage);
            messenger2.Register<string>(recipient12, recipient12.ReceiveMessage);
            messenger1.Register<string>(recipient21, recipient21.ReceiveMessage);
            messenger2.Register<string>(recipient22, recipient22.ReceiveMessage);

            const string TestContent1 = "abcd";
            const string TestContent2 = "efgh";

            Assert.AreEqual(null, recipient11.ReceivedContentString);
            Assert.AreEqual(null, recipient12.ReceivedContentString);
            Assert.AreEqual(null, recipient21.ReceivedContentString);
            Assert.AreEqual(null, recipient22.ReceivedContentString);

            messenger1.Send(TestContent1);

            Assert.AreEqual(TestContent1, recipient11.ReceivedContentString);
            Assert.AreEqual(null, recipient12.ReceivedContentString);
            Assert.AreEqual(TestContent1, recipient21.ReceivedContentString);
            Assert.AreEqual(null, recipient22.ReceivedContentString);

            messenger2.Send(TestContent2);

            Assert.AreEqual(TestContent1, recipient11.ReceivedContentString);
            Assert.AreEqual(TestContent2, recipient12.ReceivedContentString);
            Assert.AreEqual(TestContent1, recipient21.ReceivedContentString);
            Assert.AreEqual(TestContent2, recipient22.ReceivedContentString);
        }
开发者ID:NulledLabs,项目名称:mvvmlight,代码行数:37,代码来源:MessengerMultipleInstancesTest.cs

示例9: TestMultipleMessageTypes

        public void TestMultipleMessageTypes()
        {
            var messenger = new Messenger();
            var recipient = new OldTestRecipient();

            messenger.Register(recipient, typeof(OldTestMessage));
            messenger.Register(recipient, typeof(GenericMessage<InvalidOperationException>));
            messenger.Register(recipient, typeof(GenericMessage<MissingMethodException>));

            Assert.IsNull(recipient.Content);
            Assert.IsNull(recipient.ObjectContent1);
            Assert.IsNull(recipient.ObjectContent2);

            var testObject1 = new InvalidOperationException();
            var genericMessage = new GenericMessage<InvalidOperationException>(this, testObject1);
            messenger.Broadcast(genericMessage);
            Assert.AreEqual(this, recipient.Sender);
            Assert.IsNull(recipient.Content);
            Assert.AreEqual(testObject1, recipient.ObjectContent1);
            Assert.IsNull(recipient.ObjectContent2);

            var testObject2 = new MissingMethodException();
            var genericMessage2 = new GenericMessage<MissingMethodException>(this, testObject2);
            messenger.Broadcast(genericMessage2);
            Assert.AreEqual(this, recipient.Sender);
            Assert.IsNull(recipient.Content);
            Assert.AreEqual(testObject1, recipient.ObjectContent1);
            Assert.AreEqual(testObject2, recipient.ObjectContent2);

            const string TestString = "Hello world";
            var message = new OldTestMessage(this, TestString);
            messenger.Broadcast(message);
            Assert.AreEqual(this, recipient.Sender);
            Assert.AreEqual(TestString, recipient.Content);
            Assert.AreEqual(testObject1, recipient.ObjectContent1);
            Assert.AreEqual(testObject2, recipient.ObjectContent2);
        }
开发者ID:ssickles,项目名称:archive,代码行数:37,代码来源:OldMessengerTest.cs

示例10: TestInstanceCreation

        public void TestInstanceCreation()
        {
            const string TestContent = "abcd";

            Reset();
            var messenger = new Messenger();

            messenger.Register<TestMessage>(this, m => StringContent = m.Content);

            Assert.AreEqual(null, StringContent);

            messenger.Send(new TestMessage
            {
                Content = TestContent
            });

            Assert.AreEqual(TestContent, StringContent);
        }
开发者ID:name2name2,项目名称:mvvmlight,代码行数:18,代码来源:MessengerCreationDeletionTest.cs

示例11: TestPropertyChangedSendWithCustomMessenger

        public void TestPropertyChangedSendWithCustomMessenger()
        {
            var receivedDateTime1 = DateTime.MinValue;
            var receivedDateTime2 = DateTime.MinValue;

            var messenger = new Messenger();

            messenger.Register<PropertyChangedMessage<DateTime>>(this, m => receivedDateTime1 = m.NewValue);
            Messenger.Default.Register<PropertyChangedMessage<DateTime>>(this, m => receivedDateTime2 = m.NewValue);

            var vm = new TestViewModel(messenger);

            var now = DateTime.Now;
            vm.LastChanged1 = now;
            Assert.AreEqual(now, vm.LastChanged1);
            Assert.AreEqual(now, receivedDateTime1);
            Assert.AreEqual(DateTime.MinValue, receivedDateTime2);
        }
开发者ID:ismoresimpler,项目名称:DonorsChooseWindowsPhone,代码行数:18,代码来源:ViewModelBaseTest.cs

示例12: PropertyChangedTestBroadcastApplicationMessenger

        public void PropertyChangedTestBroadcastApplicationMessenger()
        {
            _receivedDateTime = DateTime.MinValue;

            var messenger = new Messenger();

            var recipient1 = new OldTestRecipient();
            var recipient2 = new OldTestRecipient();
            messenger.Register(recipient1, typeof(PropertyChangedMessage<DateTime>));
            Messenger.Default.Register(recipient2, typeof(PropertyChangedMessage<DateTime>));

            var vm = new OldTestViewModel(messenger);
            vm.PropertyChanged += VMPropertyChanged;

            Assert.AreEqual(_receivedDateTime, DateTime.MinValue);

            var now = DateTime.Now;
            vm.LastChanged2 = now;
            Assert.AreEqual(now, vm.LastChanged2);
            Assert.AreEqual(_receivedDateTime, vm.LastChanged2);
            Assert.AreEqual(now, recipient1.DateTimeContent);
            Assert.AreEqual(DateTime.MinValue, recipient2.DateTimeContent);
        }
开发者ID:ssickles,项目名称:archive,代码行数:23,代码来源:ViewModelBaseTest.cs

示例13: TestMultipleRecipients

        public void TestMultipleRecipients()
        {
            var messenger = new Messenger();
            var recipient1 = new OldTestRecipient();
            var recipient2 = new OldTestRecipient();
            var recipient3 = new OldTestRecipient();

            messenger.Register(recipient1, typeof(OldTestMessage));
            messenger.Register(recipient2, typeof(OldTestMessage));
            messenger.Register(recipient3, typeof(OldTestMessage));

            Assert.IsNull(recipient1.Sender);
            Assert.IsNull(recipient1.Content);
            Assert.IsNull(recipient2.Content);
            Assert.IsNull(recipient2.Sender);
            Assert.IsNull(recipient3.Content);
            Assert.IsNull(recipient3.Sender);

            const string TestString = "Hello world";
            var message = new OldTestMessage(this, TestString);
            messenger.Broadcast(message);

            Assert.AreEqual(TestString, recipient1.Content);
            Assert.AreEqual(this, recipient1.Sender);
            Assert.AreEqual(TestString, recipient2.Content);
            Assert.AreEqual(this, recipient2.Sender);
            Assert.AreEqual(TestString, recipient3.Content);
            Assert.AreEqual(this, recipient3.Sender);
        }
开发者ID:ssickles,项目名称:archive,代码行数:29,代码来源:OldMessengerTest.cs

示例14: Register

 /// <summary>
 /// Messenger にアクションを登録します。
 /// </summary>
 /// <param name="recipient">メッセージを受け取るオブジェクト を指定します。</param>
 /// <param name="messenger">メッセージを管理するメッセンジャーオブジェクト を指定します。</param>
 public void Register(FrameworkElement recipient, Messenger messenger)
 {
     messenger.Register<WarningMessage>(recipient, ShowMessage);
 }
开发者ID:SatohNorio,项目名称:WpfMessengerTest,代码行数:9,代码来源:MessageAction.cs

示例15: StaticCallbackMethodIsInvoked

        public void StaticCallbackMethodIsInvoked()
        {
            Messenger target = new Messenger();

            _wasStaticCallbackMethodInvoked = false;

            target.Register("MESSAGE", (Action)StaticCallbackMethod);

            target.NotifyColleagues("MESSAGE");

            Assert.IsTrue(_wasStaticCallbackMethodInvoked);
        }
开发者ID:ssickles,项目名称:archive,代码行数:12,代码来源:MessengerTests.cs


注:本文中的Messenger.Register方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。