diff --git a/samples/Commerce/Commerce.Droid/Commerce.Droid.csproj b/samples/Commerce/Commerce.Droid/Commerce.Droid.csproj
index 2f586df97..790cb1f67 100644
--- a/samples/Commerce/Commerce.Droid/Commerce.Droid.csproj
+++ b/samples/Commerce/Commerce.Droid/Commerce.Droid.csproj
@@ -66,8 +66,8 @@
-
-
+
+
diff --git a/samples/Commerce/Commerce.Shared/Assets/BitmapIcons/help_outline.png b/samples/Commerce/Commerce.Shared/Assets/BitmapIcons/help_outline.png
new file mode 100644
index 000000000..c3e36a522
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/BitmapIcons/help_outline.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/BitmapIcons/notifications.png b/samples/Commerce/Commerce.Shared/Assets/BitmapIcons/notifications.png
new file mode 100644
index 000000000..2fa79cf81
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/BitmapIcons/notifications.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/bondi-7-running-shoes.png b/samples/Commerce/Commerce.Shared/Assets/Products/bondi-7-running-shoes.png
new file mode 100644
index 000000000..7ae369862
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/bondi-7-running-shoes.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/fresh-foam-hierro-v6.png b/samples/Commerce/Commerce.Shared/Assets/Products/fresh-foam-hierro-v6.png
new file mode 100644
index 000000000..3ed147a50
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/fresh-foam-hierro-v6.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/gel-nimbus-23-running-shoes.png b/samples/Commerce/Commerce.Shared/Assets/Products/gel-nimbus-23-running-shoes.png
new file mode 100644
index 000000000..97770a463
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/gel-nimbus-23-running-shoes.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/gocap-century.png b/samples/Commerce/Commerce.Shared/Assets/Products/gocap-century.png
new file mode 100644
index 000000000..b69bfa4da
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/gocap-century.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/gt-1000-10-gs-running-shoes.png b/samples/Commerce/Commerce.Shared/Assets/Products/gt-1000-10-gs-running-shoes.png
new file mode 100644
index 000000000..c6faca8da
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/gt-1000-10-gs-running-shoes.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/isochill-armourvent-hat.png b/samples/Commerce/Commerce.Shared/Assets/Products/isochill-armourvent-hat.png
new file mode 100644
index 000000000..8d93fc878
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/isochill-armourvent-hat.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/profile-michael-scott.png b/samples/Commerce/Commerce.Shared/Assets/Products/profile-michael-scott.png
new file mode 100644
index 000000000..abec5b3aa
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/profile-michael-scott.png differ
diff --git a/samples/Commerce/Commerce.Shared/Assets/Products/the-absolute-freedom.png b/samples/Commerce/Commerce.Shared/Assets/Products/the-absolute-freedom.png
new file mode 100644
index 000000000..c63424760
Binary files /dev/null and b/samples/Commerce/Commerce.Shared/Assets/Products/the-absolute-freedom.png differ
diff --git a/samples/Commerce/Commerce.Shared/Commerce.Shared.projitems b/samples/Commerce/Commerce.Shared/Commerce.Shared.projitems
index 5d2f8d088..66591035a 100644
--- a/samples/Commerce/Commerce.Shared/Commerce.Shared.projitems
+++ b/samples/Commerce/Commerce.Shared/Commerce.Shared.projitems
@@ -136,6 +136,16 @@
Always
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/Commerce/Commerce.Shared/Models/Product.cs b/samples/Commerce/Commerce.Shared/Models/Product.cs
index 9e7314cb2..ab3b932c9 100644
--- a/samples/Commerce/Commerce.Shared/Models/Product.cs
+++ b/samples/Commerce/Commerce.Shared/Models/Product.cs
@@ -3,13 +3,16 @@ namespace Commerce.Models;
public class Product
{
public int ProductId { get; set; }
+ public string Brand { get; set; }
public string Name { get; set; }
+ public string LongName { get; set; }
public string Description { get; set; }
public string Category { get; set; }
public string FullPrice { get; set; }
public string Price { get; set; }
public string Discount { get; set; }
public string Photo { get; set; }
+ public double? Rating { get; set; }
public Review[] Reviews { get; set; }
diff --git a/samples/Commerce/Commerce.Shared/Views/CommerceHomePage.xaml b/samples/Commerce/Commerce.Shared/Views/CommerceHomePage.xaml
index 5c38cc9a8..b5bce1657 100644
--- a/samples/Commerce/Commerce.Shared/Views/CommerceHomePage.xaml
+++ b/samples/Commerce/Commerce.Shared/Views/CommerceHomePage.xaml
@@ -1,33 +1,29 @@
-
+ xmlns:uen="using:Uno.Extensions.Navigation.Controls"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
+ mc:Ignorable="d"
+ xmlns:toolkit="using:Uno.Toolkit.UI.Controls"
+ Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
+
-
-
-
-
+ M 3.9962074756622314 18 L 2.9962074756622314 18 L 3.9962074756622314 11 L 0.4962073564529419 11 C -0.08379262685775757 11 -0.07379274815320969 10.68000015616417 0.11620724946260452 10.34000015258789 C 0.30620724707841873 10.000000149011612 0.16620741412043571 10.260000266134739 0.18620741367340088 10.220000267028809 C 1.4762073755264282 7.940000295639038 3.4162073135375977 4.539999961853027 5.996207237243652 0 L 6.996207237243652 0 L 5.996207237243652 7 L 9.496207237243652 7 C 9.986207246780396 7 10.056206554174423 7.330000221729279 9.966206550598145 7.510000228881836 L 9.896206855773926 7.659999847412109 C 5.956206798553467 14.549999713897705 3.9962074756622314 18 3.9962074756622314 18 Z
+ M 8 8 C 10.210000038146973 8 12 6.210000038146973 12 4 C 12 1.7899999618530273 10.210000038146973 0 8 0 C 5.789999961853027 0 4 1.7899999618530273 4 4 C 4 6.210000038146973 5.789999961853027 8 8 8 Z M 8 10 C 5.329999923706055 10 0 11.339999914169312 0 14 L 0 16 L 16 16 L 16 14 C 16 11.339999914169312 10.670000076293945 10 8 10 Z
+ M 6 16 C 4.899999976158142 16 4.010000228881836 16.899999976158142 4.010000228881836 18 C 4.010000228881836 19.100000023841858 4.899999976158142 20 6 20 C 7.100000023841858 20 8 19.100000023841858 8 18 C 8 16.899999976158142 7.100000023841858 16 6 16 Z M 0 0 L 0 2 L 2 2 L 5.599999904632568 9.59000015258789 L 4.25 12.039999961853027 C 4.090000003576279 12.31999996304512 4 12.650000005960464 4 13 C 4 14.100000023841858 4.899999976158142 15 6 15 L 18 15 L 18 13 L 6.420000076293945 13 C 6.280000075697899 13 6.170000076293945 12.890000000596046 6.170000076293945 12.75 L 6.199999809265137 12.630000114440918 L 7.100000381469727 11 L 14.550000190734863 11 C 15.300000190734863 11 15.959999233484268 10.59000027179718 16.299999237060547 9.970000267028809 L 19.8799991607666 3.4800000190734863 C 19.959999158978462 3.34000001847744 20 3.1700000017881393 20 3 C 20 2.449999988079071 19.55000001192093 2 19 2 L 4.210000038146973 2 L 3.2699999809265137 0 L 0 0 Z M 16 16 C 14.899999976158142 16 14.010000228881836 16.899999976158142 14.010000228881836 18 C 14.010000228881836 19.100000023841858 14.899999976158142 20 16 20 C 17.100000023841858 20 18 19.100000023841858 18 18 C 18 16.899999976158142 17.100000023841858 16 16 16 Z
+ M 19.894636154174805 5.890000343322754 L 18.844636917114258 1.5199999809265137 C 18.62463691830635 0.6200000047683716 17.844637095928192 8.881784197001252e-16 16.93463706970215 8.881784197001252e-16 L 3.044635772705078 8.881784197001252e-16 C 2.144635796546936 4.440892098500626e-16 1.3546356707811356 0.6299999952316284 1.1446356773376465 1.5199999809265137 L 0.0946355015039444 5.890000343322754 C -0.14536449313163757 6.910000324249268 0.07463562488555908 7.950000464916229 0.7146356105804443 8.770000457763672 C 0.794635608792305 8.880000457167625 0.9046355783939362 8.960000418126583 0.9946355819702148 9.0600004196167 L 0.9946355819702148 16 C 0.9946355819702148 17.100000023841858 1.894635558128357 18 2.994635581970215 18 L 16.99463653564453 18 C 18.09463655948639 18 18.99463653564453 17.100000023841858 18.99463653564453 16 L 18.99463653564453 9.0600004196167 C 19.08463653922081 8.97000041604042 19.19463722407818 8.879999734461308 19.27463722229004 8.779999732971191 C 19.914637207984924 7.959999740123749 20.144636154174805 6.910000324249268 19.894636154174805 5.890000343322754 Z M 16.90463638305664 1.989999771118164 L 17.954635620117188 6.359999656677246 C 18.054635621607304 6.779999643564224 17.964635610580444 7.1999997198581696 17.704635620117188 7.529999732971191 C 17.56463561952114 7.709999740123749 17.264636993408203 8 16.764636993408203 8 C 16.15463697910309 8 15.62463504821062 7.509999632835388 15.554635047912598 6.859999656677246 L 14.974635124206543 2 L 16.90463638305664 1.989999771118164 Z M 10.994635581970215 2 L 12.954635620117188 2 L 13.494635581970215 6.520000457763672 C 13.544635582715273 6.910000443458557 13.424635648727417 7.300000160932541 13.16463565826416 7.590000152587891 C 12.944635659456253 7.8500001430511475 12.624635845422745 8 12.214635848999023 8 C 11.544635832309723 8 10.994635581970215 7.40999960899353 10.994635581970215 6.689999580383301 L 10.994635581970215 2 Z M 6.484635353088379 6.520000457763672 L 7.034635543823242 2 L 8.994635581970215 2 L 8.994635581970215 6.689999580383301 C 8.994635581970215 7.40999960899353 8.44463562965393 8 7.7046356201171875 8 C 7.364635616540909 8 7.054635271430016 7.8500001430511475 6.814635276794434 7.590000152587891 C 6.564635276794434 7.300000160932541 6.444635353982449 6.910000443458557 6.484635353088379 6.520000457763672 Z M 2.034635543823242 6.359999656677246 L 3.044635772705078 2 L 5.0146355628967285 2 L 4.434635639190674 6.859999656677246 C 4.354635640978813 7.509999632835388 3.834635615348816 8 3.224635601043701 8 C 2.734635591506958 8 2.4246357679367065 7.709999740123749 2.294635772705078 7.529999732971191 C 2.024635761976242 7.209999740123749 1.934635542333126 6.779999643564224 2.034635543823242 6.359999656677246 Z M 2.994635581970215 16 L 2.994635581970215 9.970000267028809 C 3.0746355801820755 9.980000266805291 3.1446356028318405 10 3.224635601043701 10 C 4.094635605812073 10 4.884635388851166 9.64000016450882 5.464635372161865 9.050000190734863 C 6.064635396003723 9.650000214576721 6.8646352887153625 10 7.774635314941406 10 C 8.644635319709778 10 9.424635827541351 9.639999687671661 10.00463581085205 9.069999694824219 C 10.594635784626007 9.639999687671661 11.394635796546936 10 12.294635772705078 10 C 13.134635746479034 10 13.9346364736557 9.650000214576721 14.534636497497559 9.050000190734863 C 15.114636480808258 9.64000016450882 15.904637217521667 10 16.77463722229004 10 C 16.8546372205019 10 16.924636766314507 9.980000266805291 17.004636764526367 9.970000267028809 L 17.004636764526367 16 L 2.994635581970215 16 Z
-
+
@@ -64,29 +60,83 @@
IsBackButtonVisible="Collapsed"
nav:Region.Attached="true">
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/Commerce/Commerce.Shared/Views/FilterPopup.xaml b/samples/Commerce/Commerce.Shared/Views/FilterPopup.xaml
index 519eab144..c50b39388 100644
--- a/samples/Commerce/Commerce.Shared/Views/FilterPopup.xaml
+++ b/samples/Commerce/Commerce.Shared/Views/FilterPopup.xaml
@@ -82,11 +82,11 @@
-
+
-
+
diff --git a/samples/Commerce/Commerce.Shared/Views/ProductDetailsPage.xaml b/samples/Commerce/Commerce.Shared/Views/ProductDetailsPage.xaml
index 4b6108324..aa63ab40e 100644
--- a/samples/Commerce/Commerce.Shared/Views/ProductDetailsPage.xaml
+++ b/samples/Commerce/Commerce.Shared/Views/ProductDetailsPage.xaml
@@ -44,7 +44,7 @@
-
+
@@ -89,7 +89,8 @@
-
+
+
@@ -118,7 +119,8 @@
-
+
+
@@ -147,7 +149,8 @@
-
+
+
diff --git a/samples/Commerce/Commerce.Shared/Views/ProductsPage.xaml b/samples/Commerce/Commerce.Shared/Views/ProductsPage.xaml
index 2fcf4b13d..ba0f3e272 100644
--- a/samples/Commerce/Commerce.Shared/Views/ProductsPage.xaml
+++ b/samples/Commerce/Commerce.Shared/Views/ProductsPage.xaml
@@ -54,20 +54,33 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
@@ -87,14 +100,14 @@
-
+
-
-
+
+
@@ -103,7 +116,7 @@
-
+
diff --git a/samples/Commerce/Commerce.Shared/products.json b/samples/Commerce/Commerce.Shared/products.json
index a56c4940d..99b136b59 100644
--- a/samples/Commerce/Commerce.Shared/products.json
+++ b/samples/Commerce/Commerce.Shared/products.json
@@ -1,30 +1,89 @@
[
{
"ProductId": "1",
- "Name": "ProMaster headphones",
- "Category": "Technology",
- "FullPrice": "$130",
- "Price": "$99",
+ "Brand": "Ciele",
+ "Name": "GoCap Century",
+ "Category": "Accessories",
+ "FullPrice": "$44,99",
+ "Price": "$44,99",
"Discount": "Save 25%",
- "Photo": "ms-appx:///Assets/Photos/stockphoto1.png"
+ "Photo": "ms-appx:///Assets/Products/gocap-century.png"
},
{
"ProductId": "2",
- "Name": "Ray-gen sunglasses",
+ "Brand": "New Balance",
+ "Name": "Fresh Foam Hierro v6",
+ "LongName": "Fresh Foam Hierro v6 Trail Running Shoes - Men's",
"Category": "Accessories",
- "FullPrice": "$130",
- "Price": "$99",
+ "FullPrice": "$179,99",
+ "Price": "$179,99",
"Discount": "Save 25%",
- "Photo": "ms-appx:///Assets/Photos/stockphoto2.png"
+ "Photo": "ms-appx:///Assets/Products/fresh-foam-hierro-v6.png",
+ "Description": "Rack up some miles out on the trails in our rugged Fresh Foam Hierro v6. The men’s running shoe features a lightweight Fresh Foam midsole that helps to provide a soft landing on rough terrain. A proven Vibram® outsole provides traction and durability.",
+ "Rating": "4",
+ "Reviews": [
+ {
+ "Name": "Debbie W.",
+ "Message": "True to size and great stability and support on the trails! Certainly won’t disappoint!!"
+ },
+ {
+ "Name": "Mark T.",
+ "Message": "The runners arrived faster than i thought.Fit absolutely true to size. very comfortable"
+ },
+ {
+ "Name": "Eyup G.",
+ "Message": "Super comfortable."
+ }
+ ]
},
{
"ProductId": "3",
- "Name": "Jeffords sneakers",
+ "Brand": "Pit Viper",
+ "Name": "The Absolute Freedom",
"Category": "Men's shoes",
- "FullPrice": "$130",
- "Price": "$99",
+ "FullPrice": "$125,99",
+ "Price": "$125,99",
"Discount": "Save 25%",
- "Photo": "ms-appx:///Assets/Photos/stockphoto3.png",
- "Description": "The classic low top silhouette is reinvented with a water-resistant feature. The perfect go-to pair to sport on light rainy days!"
+ "Photo": "ms-appx:///Assets/Products/the-absolute-freedom.png"
+ },
+ {
+ "ProductId": "4",
+ "Brand": "Under Armour",
+ "Name": "Isochill Armourvent Hat",
+ "Category": "Accessories",
+ "FullPrice": "$31,99",
+ "Price": "$31,99",
+ "Discount": "Save 25%",
+ "Photo": "ms-appx:///Assets/Products/isochill-armourvent-hat.png"
+ },
+ {
+ "ProductId": "5",
+ "Brand": "ASICS",
+ "Name": "Gel-Nimbus 23 Running Shoes",
+ "Category": "Accessories",
+ "FullPrice": "$149,99",
+ "Price": "$149,99",
+ "Discount": "Save 25%",
+ "Photo": "ms-appx:///Assets/Products/gel-nimbus-23-running-shoes.png"
+ },
+ {
+ "ProductId": "6",
+ "Brand": "ASICS",
+ "Name": "GT-1000 10 GS Running Shoes",
+ "Category": "Men's shoes",
+ "FullPrice": "$59,99",
+ "Price": "$59,99",
+ "Discount": "Save 25%",
+ "Photo": "ms-appx:///Assets/Products/gt-1000-10-gs-running-shoes.png"
+ },
+ {
+ "ProductId": "7",
+ "Brand": "Hoka",
+ "Name": "Bondi 7 Running Shoes",
+ "Category": "Men's shoes",
+ "FullPrice": "$189,99",
+ "Price": "$189,99",
+ "Discount": "Save 25%",
+ "Photo": "ms-appx:///Assets/Products/bondi-7-running-shoes.png"
}
]
diff --git a/samples/Commerce/Commerce.Skia.Gtk/Commerce.Skia.Gtk.csproj b/samples/Commerce/Commerce.Skia.Gtk/Commerce.Skia.Gtk.csproj
index 0268d1313..168388da9 100644
--- a/samples/Commerce/Commerce.Skia.Gtk/Commerce.Skia.Gtk.csproj
+++ b/samples/Commerce/Commerce.Skia.Gtk/Commerce.Skia.Gtk.csproj
@@ -17,7 +17,7 @@
-
+
1.1.0-dev.13
diff --git a/samples/Commerce/Commerce.Skia.WPF/Commerce.Skia.WPF.csproj b/samples/Commerce/Commerce.Skia.WPF/Commerce.Skia.WPF.csproj
index 721e3a2d4..a78afe952 100644
--- a/samples/Commerce/Commerce.Skia.WPF/Commerce.Skia.WPF.csproj
+++ b/samples/Commerce/Commerce.Skia.WPF/Commerce.Skia.WPF.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/samples/Commerce/Commerce.UWP/Commerce.Uwp.csproj b/samples/Commerce/Commerce.UWP/Commerce.Uwp.csproj
index 6f41864d7..33f0a964b 100644
--- a/samples/Commerce/Commerce.UWP/Commerce.Uwp.csproj
+++ b/samples/Commerce/Commerce.UWP/Commerce.Uwp.csproj
@@ -23,7 +23,7 @@
1.1.0-dev.13
- 0.1.0-dev.116
+ 0.1.0-dev.120
@@ -32,7 +32,7 @@
-
+
Debug
diff --git a/samples/Commerce/Commerce.Wasm/Commerce.Wasm.csproj b/samples/Commerce/Commerce.Wasm/Commerce.Wasm.csproj
index 2dd0b22ff..f3c5bf64c 100644
--- a/samples/Commerce/Commerce.Wasm/Commerce.Wasm.csproj
+++ b/samples/Commerce/Commerce.Wasm/Commerce.Wasm.csproj
@@ -55,8 +55,8 @@
-
-
+
+
diff --git a/samples/Commerce/Commerce.iOS/Commerce.iOS.csproj b/samples/Commerce/Commerce.iOS/Commerce.iOS.csproj
index b044ef7e9..dadb0f556 100644
--- a/samples/Commerce/Commerce.iOS/Commerce.iOS.csproj
+++ b/samples/Commerce/Commerce.iOS/Commerce.iOS.csproj
@@ -122,7 +122,7 @@
-
+
diff --git a/samples/Commerce/Commerce.macOS/Commerce.macOS.csproj b/samples/Commerce/Commerce.macOS/Commerce.macOS.csproj
index b21ab596e..1ef0599d8 100644
--- a/samples/Commerce/Commerce.macOS/Commerce.macOS.csproj
+++ b/samples/Commerce/Commerce.macOS/Commerce.macOS.csproj
@@ -74,7 +74,7 @@
- 0.1.0-dev.116
+ 0.1.0-dev.120
diff --git a/src/Uno.Extensions.Navigation/Controls/ActionNavigationBindingHandlerBase.cs b/src/Uno.Extensions.Navigation/Controls/ActionNavigationBindingHandlerBase.cs
index 2b63cc358..dbf932018 100644
--- a/src/Uno.Extensions.Navigation/Controls/ActionNavigationBindingHandlerBase.cs
+++ b/src/Uno.Extensions.Navigation/Controls/ActionNavigationBindingHandlerBase.cs
@@ -36,7 +36,8 @@ namespace Uno.Extensions.Navigation.Controls
var data = element.GetData();
var resultType = data?.GetType();
var binding = element.GetBindingExpression(Navigation.DataProperty);
- if (binding is not null)
+ if (binding is not null &&
+ binding.DataItem is not null)
{
var dataObject = binding.DataItem;
var bindingPathSegments = binding.ParentBinding.Path.Path.Split('.').ToArray();
@@ -51,6 +52,11 @@ namespace Uno.Extensions.Navigation.Controls
{
dataObject = prop.GetValue(dataObject);
}
+
+ if (dataObject is null)
+ {
+ break;
+ }
}
}
diff --git a/src/Uno.Extensions.Navigation/ServiceCollectionExtensions.cs b/src/Uno.Extensions.Navigation/ServiceCollectionExtensions.cs
index c44c053bb..f80fa1398 100644
--- a/src/Uno.Extensions.Navigation/ServiceCollectionExtensions.cs
+++ b/src/Uno.Extensions.Navigation/ServiceCollectionExtensions.cs
@@ -53,6 +53,7 @@ public static class ServiceCollectionExtensions
.AddSingleton()
.AddSingleton()
+ .AddSingleton()
// Register the navigation mappings repository
.AddSingleton()