public void TestCamelCaseSplit() { const string String1 = "ThisIsOneTestString"; const string String2 = "ThisOneABCContainsAbreviation"; const string String3 = "ThisOneContainsASingleCharacterWord"; const string String4 = "ThisOneEndsWithAbbreviationABC"; const string String5 = "ThisOneEndsWithASingleCharacterWordZ"; var expected1 = new[] { "This", "Is", "One", "Test", "String" }; var expected2 = new[] { "This", "One", "ABC", "Contains", "Abreviation" }; var expected3 = new[] { "This", "One", "Contains", "A", "Single", "Character", "Word" }; var expected4 = new[] { "This", "One", "Ends", "With", "Abbreviation", "ABC" }; var expected5 = new[] { "This", "One", "Ends", "With", "A", "Single", "Character", "Word", "Z" }; var split1 = String1.CamelCaseSplit(); Assert.AreEqual(expected1.Length, split1.Count); for (int i = 0; i < expected1.Length; ++i) { Assert.AreEqual(expected1[i], split1[i]); } var split2 = String2.CamelCaseSplit(); Assert.AreEqual(expected2.Length, split2.Count); for (int i = 0; i < expected2.Length; ++i) { Assert.AreEqual(expected2[i], split2[i]); } var split3 = String3.CamelCaseSplit(); Assert.AreEqual(expected3.Length, split3.Count); for (int i = 0; i < expected3.Length; ++i) { Assert.AreEqual(expected3[i], split3[i]); } var split4 = String4.CamelCaseSplit(); Assert.AreEqual(expected4.Length, split4.Count); for (int i = 0; i < expected4.Length; ++i) { Assert.AreEqual(expected4[i], split4[i]); } var split5 = String5.CamelCaseSplit(); Assert.AreEqual(expected5.Length, split5.Count); for (int i = 0; i < expected5.Length; ++i) { Assert.AreEqual(expected5[i], split5[i]); } }
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container) { //validate if (item == null) { return(DefaultTemplate); } //get string var str = item as string; if (item.GetType().IsPrimitive || item.GetType().IsEnum) { str = item.ToString(); } //select template if (str == null) { return(DefaultTemplate); } if (String1 != null && String1.Split(',').Contains(str)) { return(Template1); } if (String2 != null && String2.Split(',').Contains(str)) { return(Template2); } if (String3 != null && String3.Split(',').Contains(str)) { return(Template3); } if (String4 != null && String4.Split(',').Contains(str)) { return(Template4); } if (String5 != null && String5.Split(',').Contains(str)) { return(Template5); } if (String6 != null && String6.Split(',').Contains(str)) { return(Template6); } if (String7 != null && String7.Split(',').Contains(str)) { return(Template7); } if (String8 != null && String8.Split(',').Contains(str)) { return(Template8); } if (String9 != null && String9.Split(',').Contains(str)) { return(Template9); } if (String10 != null && String10.Split(',').Contains(str)) { return(Template10); } return(DefaultTemplate); }