diff --git a/samples/XamlTestApplicationPcl/ContentControl.paml b/samples/XamlTestApplicationPcl/ContentControl.paml
index a73a844e83..d45974fa68 100644
--- a/samples/XamlTestApplicationPcl/ContentControl.paml
+++ b/samples/XamlTestApplicationPcl/ContentControl.paml
@@ -1,8 +1,12 @@
\ No newline at end of file
diff --git a/samples/XamlTestApplicationPcl/ListBox.paml b/samples/XamlTestApplicationPcl/ListBox.paml
new file mode 100644
index 0000000000..2a151889a0
--- /dev/null
+++ b/samples/XamlTestApplicationPcl/ListBox.paml
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/samples/XamlTestApplicationPcl/ListBoxItem.paml b/samples/XamlTestApplicationPcl/ListBoxItem.paml
new file mode 100644
index 0000000000..7896e521aa
--- /dev/null
+++ b/samples/XamlTestApplicationPcl/ListBoxItem.paml
@@ -0,0 +1,22 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/XamlTestApplicationPcl/TreeView.paml b/samples/XamlTestApplicationPcl/TreeView.paml
new file mode 100644
index 0000000000..e4a57400be
--- /dev/null
+++ b/samples/XamlTestApplicationPcl/TreeView.paml
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/samples/XamlTestApplicationPcl/TreeViewItem.paml b/samples/XamlTestApplicationPcl/TreeViewItem.paml
new file mode 100644
index 0000000000..28ebcb39fa
--- /dev/null
+++ b/samples/XamlTestApplicationPcl/TreeViewItem.paml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/XamlTestApplicationPcl/XamlTestApp.paml b/samples/XamlTestApplicationPcl/XamlTestApp.paml
index 965fe4ee45..2bd6b163c1 100644
--- a/samples/XamlTestApplicationPcl/XamlTestApp.paml
+++ b/samples/XamlTestApplicationPcl/XamlTestApp.paml
@@ -5,6 +5,9 @@
+
+
+
@@ -13,6 +16,8 @@
+
+
\ No newline at end of file
diff --git a/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj b/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
index 9849e6cde4..8c61559dce 100644
--- a/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
+++ b/samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
@@ -151,6 +151,21 @@
Designer
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
Designer
diff --git a/src/Perspex.Controls/GridLength.cs b/src/Perspex.Controls/GridLength.cs
index af1aa32d61..43ce1efa4c 100644
--- a/src/Perspex.Controls/GridLength.cs
+++ b/src/Perspex.Controls/GridLength.cs
@@ -210,7 +210,7 @@ namespace Perspex.Controls
/// The .
public static IEnumerable ParseLengths(string s, CultureInfo culture)
{
- return s.Split(new[] { ',', ' ' }).Select(x => Parse(x, culture));
+ return s.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Parse(x, culture));
}
}
}
\ No newline at end of file
diff --git a/src/Perspex.Controls/ItemsControl.cs b/src/Perspex.Controls/ItemsControl.cs
index 000f1eae1e..9da2ae45ba 100644
--- a/src/Perspex.Controls/ItemsControl.cs
+++ b/src/Perspex.Controls/ItemsControl.cs
@@ -149,7 +149,7 @@ namespace Perspex.Controls
///
protected override void OnTemplateApplied()
{
- Presenter = this.FindTemplateChild("itemsPresenter");
+ Presenter = this.FindTemplateChild("PART_ItemsPresenter");
}
///
diff --git a/src/Perspex.Themes.Default/ItemsControlStyle.cs b/src/Perspex.Themes.Default/ItemsControlStyle.cs
index 91565b4471..377afe4cfa 100644
--- a/src/Perspex.Themes.Default/ItemsControlStyle.cs
+++ b/src/Perspex.Themes.Default/ItemsControlStyle.cs
@@ -41,7 +41,7 @@ namespace Perspex.Themes.Default
{
return new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
MemberSelector = control.MemberSelector,
[~ItemsPresenter.ItemsProperty] = control[~ItemsControl.ItemsProperty],
[~ItemsPresenter.ItemsPanelProperty] = control[~ItemsControl.ItemsPanelProperty],
diff --git a/tests/Perspex.Controls.UnitTests/GridLengthTests.cs b/tests/Perspex.Controls.UnitTests/GridLengthTests.cs
index f90b585d3d..b798e178da 100644
--- a/tests/Perspex.Controls.UnitTests/GridLengthTests.cs
+++ b/tests/Perspex.Controls.UnitTests/GridLengthTests.cs
@@ -87,5 +87,21 @@ namespace Perspex.Controls.UnitTests
},
result);
}
+
+ [Fact]
+ public void ParseLengths_Accepts_Comma_Separators_With_Spaces()
+ {
+ var result = GridLength.ParseLengths("*, Auto, 2* ,4", CultureInfo.InvariantCulture).ToList();
+
+ Assert.Equal(
+ new[]
+ {
+ new GridLength(1, GridUnitType.Star),
+ GridLength.Auto,
+ new GridLength(2, GridUnitType.Star),
+ new GridLength(4, GridUnitType.Pixel),
+ },
+ result);
+ }
}
}
diff --git a/tests/Perspex.Controls.UnitTests/ItemsControlTests.cs b/tests/Perspex.Controls.UnitTests/ItemsControlTests.cs
index bb57daa004..e066866a05 100644
--- a/tests/Perspex.Controls.UnitTests/ItemsControlTests.cs
+++ b/tests/Perspex.Controls.UnitTests/ItemsControlTests.cs
@@ -361,7 +361,7 @@ namespace Perspex.Controls.UnitTests
Background = new Media.SolidColorBrush(0xffffffff),
Child = new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
MemberSelector = parent.MemberSelector,
[~ItemsPresenter.ItemsProperty] = parent[~ItemsControl.ItemsProperty],
}
diff --git a/tests/Perspex.Controls.UnitTests/ListBoxTests.cs b/tests/Perspex.Controls.UnitTests/ListBoxTests.cs
index b1baf4b099..0f1a60b902 100644
--- a/tests/Perspex.Controls.UnitTests/ListBoxTests.cs
+++ b/tests/Perspex.Controls.UnitTests/ListBoxTests.cs
@@ -97,7 +97,7 @@ namespace Perspex.Controls.UnitTests
Template = new FuncControlTemplate(CreateScrollViewerTemplate),
Content = new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
[~ItemsPresenter.ItemsProperty] = parent.GetObservable(ItemsControl.ItemsProperty),
}
};
diff --git a/tests/Perspex.Controls.UnitTests/ListBoxTests_Single.cs b/tests/Perspex.Controls.UnitTests/ListBoxTests_Single.cs
index 1d77a18af0..a6f02dc27b 100644
--- a/tests/Perspex.Controls.UnitTests/ListBoxTests_Single.cs
+++ b/tests/Perspex.Controls.UnitTests/ListBoxTests_Single.cs
@@ -205,7 +205,7 @@ namespace Perspex.Controls.UnitTests
Template = new FuncControlTemplate(CreateScrollViewerTemplate),
Content = new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
[~ItemsPresenter.ItemsProperty] = parent.GetObservable(ItemsControl.ItemsProperty),
}
};
diff --git a/tests/Perspex.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs b/tests/Perspex.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
index ecdc3def92..d348ab126c 100644
--- a/tests/Perspex.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
+++ b/tests/Perspex.Controls.UnitTests/Primitives/SelectingItemsControlTests_Multiple.cs
@@ -434,7 +434,7 @@ namespace Perspex.Controls.UnitTests.Primitives
return new FuncControlTemplate(control =>
new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
[~ItemsPresenter.ItemsProperty] = control[~ItemsControl.ItemsProperty],
[~ItemsPresenter.ItemsPanelProperty] = control[~ItemsControl.ItemsPanelProperty],
});
diff --git a/tests/Perspex.Controls.UnitTests/TreeViewTests.cs b/tests/Perspex.Controls.UnitTests/TreeViewTests.cs
index 7308b016aa..2db62dd619 100644
--- a/tests/Perspex.Controls.UnitTests/TreeViewTests.cs
+++ b/tests/Perspex.Controls.UnitTests/TreeViewTests.cs
@@ -215,7 +215,7 @@ namespace Perspex.Controls.UnitTests
{
return new FuncControlTemplate(parent => new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
[~ItemsPresenter.ItemsProperty] = parent[~ItemsControl.ItemsProperty],
});
}
@@ -224,7 +224,7 @@ namespace Perspex.Controls.UnitTests
{
return new FuncControlTemplate(parent => new ItemsPresenter
{
- Name = "itemsPresenter",
+ Name = "PART_ItemsPresenter",
[~ItemsPresenter.ItemsProperty] = parent[~ItemsControl.ItemsProperty],
});
}