From 39295aa8f2ef0070b9f86f601d364f5a9426b186 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 4 May 2015 16:13:15 +0200 Subject: [PATCH] Removed ItemsControl.MemberSelector. It didn't work out. --- Perspex.Controls/ItemsControl.cs | 9 ------ Perspex.Controls/Presenters/ItemsPresenter.cs | 29 ------------------- Perspex.Themes.Default/DeckStyle.cs | 1 - Perspex.Themes.Default/ListBoxStyle.cs | 1 - TestApplication/Program.cs | 5 ---- .../Presenters/ItemsPresenterTests.cs | 27 ----------------- 6 files changed, 72 deletions(-) diff --git a/Perspex.Controls/ItemsControl.cs b/Perspex.Controls/ItemsControl.cs index a2af0efced..f379adaa7b 100644 --- a/Perspex.Controls/ItemsControl.cs +++ b/Perspex.Controls/ItemsControl.cs @@ -30,9 +30,6 @@ namespace Perspex.Controls public static readonly PerspexProperty ItemsPanelProperty = PerspexProperty.Register("ItemsPanel", defaultValue: DefaultPanel); - public static readonly PerspexProperty> MemberSelectorProperty = - PerspexProperty.Register>("MemberSelector"); - private ItemContainerGenerator itemContainerGenerator; private PerspexReadOnlyListView logicalChildren = @@ -77,12 +74,6 @@ namespace Perspex.Controls set { this.SetValue(ItemsPanelProperty, value); } } - public Func MemberSelector - { - get { return this.GetValue(MemberSelectorProperty); } - set { this.SetValue(MemberSelectorProperty, value); } - } - IPerspexReadOnlyList ILogical.LogicalChildren { get diff --git a/Perspex.Controls/Presenters/ItemsPresenter.cs b/Perspex.Controls/Presenters/ItemsPresenter.cs index c1200279fd..7e09b5f8e5 100644 --- a/Perspex.Controls/Presenters/ItemsPresenter.cs +++ b/Perspex.Controls/Presenters/ItemsPresenter.cs @@ -23,9 +23,6 @@ namespace Perspex.Controls.Presenters public static readonly PerspexProperty ItemsPanelProperty = ItemsControl.ItemsPanelProperty.AddOwner(); - public static readonly PerspexProperty> MemberSelectorProperty = - ItemsControl.MemberSelectorProperty.AddOwner(); - private bool createdPanel; private DataTemplate memberSelectorTemplate; @@ -33,7 +30,6 @@ namespace Perspex.Controls.Presenters public ItemsPresenter() { this.GetObservableWithHistory(ItemsProperty).Subscribe(this.ItemsChanged); - this.GetObservable(MemberSelectorProperty).Subscribe(this.MemberSelectorChanged); } public ItemContainerGenerator ItemContainerGenerator @@ -54,12 +50,6 @@ namespace Perspex.Controls.Presenters set { this.SetValue(ItemsPanelProperty, value); } } - public Func MemberSelector - { - get { return this.GetValue(MemberSelectorProperty); } - set { this.SetValue(MemberSelectorProperty, value); } - } - public Panel Panel { get; @@ -166,24 +156,5 @@ namespace Perspex.Controls.Presenters this.InvalidateMeasure(); } } - - private void MemberSelectorChanged(Func selector) - { - if (this.memberSelectorTemplate != null) - { - this.DataTemplates.Remove(this.memberSelectorTemplate); - this.memberSelectorTemplate = null; - } - - if (selector != null) - { - var templatedParent = this.TemplatedParent as Control; - - this.memberSelectorTemplate = new DataTemplate(o => - templatedParent?.MaterializeDataTemplate(selector(o)) ?? - DataTemplate.Default.Build(selector(o))); - this.DataTemplates.Add(this.memberSelectorTemplate); - } - } } } diff --git a/Perspex.Themes.Default/DeckStyle.cs b/Perspex.Themes.Default/DeckStyle.cs index d9d0ebd46b..07494599e3 100644 --- a/Perspex.Themes.Default/DeckStyle.cs +++ b/Perspex.Themes.Default/DeckStyle.cs @@ -48,7 +48,6 @@ namespace Perspex.Themes.Default Id = "itemsPresenter", [~ItemsPresenter.ItemsProperty] = control[~Deck.ItemsProperty], [~ItemsPresenter.ItemsPanelProperty] = control[~Deck.ItemsPanelProperty], - [~ItemsPresenter.MemberSelectorProperty] = control[~Deck.MemberSelectorProperty], }; } } diff --git a/Perspex.Themes.Default/ListBoxStyle.cs b/Perspex.Themes.Default/ListBoxStyle.cs index 8f6f4b8c6e..39df2e89e6 100644 --- a/Perspex.Themes.Default/ListBoxStyle.cs +++ b/Perspex.Themes.Default/ListBoxStyle.cs @@ -45,7 +45,6 @@ namespace Perspex.Themes.Default Id = "itemsPresenter", [~ItemsPresenter.ItemsProperty] = control[~ListBox.ItemsProperty], [~ItemsPresenter.ItemsPanelProperty] = control[~ListBox.ItemsPanelProperty], - [~ItemsPresenter.MemberSelectorProperty] = control[~ListBox.MemberSelectorProperty], } } }; diff --git a/TestApplication/Program.cs b/TestApplication/Program.cs index f80f093070..5bbe850c7a 100644 --- a/TestApplication/Program.cs +++ b/TestApplication/Program.cs @@ -420,11 +420,6 @@ namespace TestApplication SelectedIndex = 0, MaxHeight = 300, }), - new Deck - { - Items = listBoxData, - [!Deck.SelectedItemProperty] = listBox[!ListBox.SelectedItemProperty], - }, new DropDown { Items = listBoxData, diff --git a/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs b/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs index e626dcc9e8..416a4590ad 100644 --- a/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs +++ b/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs @@ -72,32 +72,5 @@ namespace Perspex.Controls.UnitTests.Presenters Assert.Equal(2, target.Panel.GetVisualChildren().Count()); } - - [Fact] - public void MemberSelector_Should_Be_Applied_To_Items() - { - var target = new ItemsPresenter - { - Items = new[] - { - new Item { Name = "foo" }, - new Item { Name = "bar" }, - }, - MemberSelector = x => ((Item)x).Name, - }; - - target.ApplyTemplate(); - - var itemText = target.ItemContainerGenerator.GetAll() - .Select(x => ((TextBlock)x.Item2).Text) - .ToList(); - - Assert.Equal(new[] { "foo", "bar" }, itemText); - } - - private class Item - { - public string Name { get; set; } - } } }