MvvmCross.Binding.Bindings.MvxFullBinding.Dispose C# (CSharp) Method

Dispose() protected method

protected Dispose ( bool isDisposing ) : void
isDisposing bool
return void
        protected override void Dispose(bool isDisposing)
        {
            if (isDisposing)
            {
                this.ClearTargetBinding();
                this.ClearSourceBinding();
            }
        }
    }

Usage Example

示例#1
0
        private static void OneTimeAssertions(MvxFullBinding binding, MockTargetBinding mockTarget, MockSourceBinding mockSource)
        {
            Assert.AreEqual(0, mockTarget.SubscribeToEventsCalled);

            Assert.AreEqual(1, mockTarget.Values.Count);
            Assert.AreEqual("TryGetValueValue", mockTarget.Values[0]);

            mockSource.TryGetValueValue = "SecondValue";
            mockSource.FireSourceChanged();
            Assert.AreEqual(1, mockTarget.Values.Count);

            mockSource.TryGetValueValue = "ThirdValue";
            mockSource.FireSourceChanged();
            Assert.AreEqual(1, mockTarget.Values.Count);

            Assert.AreEqual(0, mockSource.ValuesSet.Count);
            mockTarget.FireValueChanged(new MvxTargetChangedEventArgs("FromTarget1"));
            Assert.AreEqual(0, mockSource.ValuesSet.Count);
            mockTarget.FireValueChanged(new MvxTargetChangedEventArgs("FromTarget2"));
            Assert.AreEqual(0, mockSource.ValuesSet.Count);

            Assert.AreEqual(0, mockSource.DisposeCalled);
            Assert.AreEqual(0, mockTarget.DisposeCalled);

            binding.DataContext = new { ignored = 12 };
            Assert.AreEqual(1, mockSource.DisposeCalled);
            Assert.AreEqual(0, mockTarget.DisposeCalled);

            Assert.AreEqual(2, mockTarget.Values.Count);
            Assert.AreEqual("ThirdValue", mockTarget.Values[1]);

            binding.DataContext = new { ignored = 13 };
            Assert.AreEqual(2, mockSource.DisposeCalled);
            Assert.AreEqual(0, mockTarget.DisposeCalled);

            Assert.AreEqual(3, mockTarget.Values.Count);
            Assert.AreEqual("ThirdValue", mockTarget.Values[2]);

            mockSource.TryGetValueValue = "NewValue";
            mockSource.FireSourceChanged();
            Assert.AreEqual(3, mockTarget.Values.Count);

            mockTarget.FireValueChanged(new MvxTargetChangedEventArgs("FromTarget1"));
            Assert.AreEqual(0, mockSource.ValuesSet.Count);
            mockTarget.FireValueChanged(new MvxTargetChangedEventArgs("FromTarget2"));
            Assert.AreEqual(0, mockSource.ValuesSet.Count);

            binding.Dispose();
            Assert.AreEqual(3, mockSource.DisposeCalled);
            Assert.AreEqual(1, mockTarget.DisposeCalled);
        }