Fixed #1002: Inherited dependency properties with value false are not inherited down the visual tree.

This commit is contained in:
Rossen Hristov
2015-11-16 09:51:28 +02:00
parent 4260980823
commit bba7931e5b
2 changed files with 35 additions and 3 deletions

View File

@@ -264,6 +264,14 @@ var inheritanceTestProperty = new dependensyObservable.Property(
new proxy.PropertyMetadata(inheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
);
var booleanInheritanceTestDefaultValue = true;
var booleanInheritanceTestProperty = new dependensyObservable.Property(
"booleanInheritanceTest",
"TestView",
new proxy.PropertyMetadata(booleanInheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
);
var dummyProperty = new dependensyObservable.Property(
"dummy",
"TestView",
@@ -293,6 +301,13 @@ class TestView extends layoutModule.Layout {
this._setValue(inheritanceTestProperty, value);
}
get booleanInheritanceTest(): boolean {
return this._getValue(booleanInheritanceTestProperty);
}
set booleanInheritanceTest(value: boolean) {
this._setValue(booleanInheritanceTestProperty, value);
}
get dummy(): number {
return this._getValue(dummyProperty);
}
@@ -328,6 +343,25 @@ export var test_InheritableProperties_getValuesFromParent = function () {
helper.do_PageTest(test, firstView, secondView, thirdView);
}
export var test_BooleanInheritableProperties_getValuesFromParent = function () {
var testValue = false;
var test = function (views: Array<viewModule.View>) {
var bottomView = <TestView>views[3]
TKUnit.assert(bottomView.booleanInheritanceTest === testValue, "Expected: " + testValue + " Actual: " + bottomView.booleanInheritanceTest);
}
var firstView = new TestView("firstView");
firstView.booleanInheritanceTest = testValue;
var secondView = new TestView("secondView");
var thirdView = new TestView("thirdView");
firstView.addChild(secondView);
secondView.addChild(thirdView);
helper.do_PageTest(test, firstView, secondView, thirdView);
}
export var test_InheritableProperties_resetValuesOnRemoveFromVisualTree = function () {
var testValue = 35;
var test = function (views: Array<viewModule.View>) {

View File

@@ -977,9 +977,7 @@ export class View extends proxy.ProxyObject implements definition.View {
}
if (property.metadata && property.metadata.inheritable) {
var baseValue = parentView._getValue(property);
if (baseValue) {
that._setValue(property, baseValue, dependencyObservable.ValueSource.Inherited);
}
that._setValue(property, baseValue, dependencyObservable.ValueSource.Inherited);
}
return true;
};