Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Maupin <ermaup@microsoft.com>2018-02-20 21:20:34 +0300
committerEric Maupin <ermaup@microsoft.com>2018-02-27 21:11:49 +0300
commite3185a6de1f0d8f0d563018a9413e66eb92302de (patch)
tree0d9b9ed43e7f69dd45c522ea77d359367e1ff228 /Xamarin.PropertyEditing.Windows
parent38da46e4ea4329979cd2e6d08f6f3267193f5f8f (diff)
[Win] Ensure ChoiceControl deselects
In theory just checking one radio in the group should be enough, but in some circumstances when VMs change it doesn't appear to be enough, so we'll enforce it.
Diffstat (limited to 'Xamarin.PropertyEditing.Windows')
-rw-r--r--Xamarin.PropertyEditing.Windows/ChoiceControl.cs25
1 files changed, 19 insertions, 6 deletions
diff --git a/Xamarin.PropertyEditing.Windows/ChoiceControl.cs b/Xamarin.PropertyEditing.Windows/ChoiceControl.cs
index f80ad63..efba8c1 100644
--- a/Xamarin.PropertyEditing.Windows/ChoiceControl.cs
+++ b/Xamarin.PropertyEditing.Windows/ChoiceControl.cs
@@ -66,13 +66,17 @@ namespace Xamarin.PropertyEditing.Windows
protected override void OnSelectionChanged (SelectionChangedEventArgs e)
{
- if (e.AddedItems.Count == 0) return;
- var presenter = (ContentPresenter) ItemContainerGenerator.ContainerFromItem (e.AddedItems[0]);
- if (presenter == null)
- return;
+ if (e.RemovedItems.Count > 0) {
+ var removedToggle = GetToggle (e.RemovedItems[0]);
+ if (removedToggle != null)
+ removedToggle.IsChecked = false;
+ }
- var toggle = (ToggleButton) VisualTreeHelper.GetChild (presenter, 0);
- toggle.IsChecked = true;
+ if (e.AddedItems.Count > 0) {
+ var addedToggle = GetToggle (e.AddedItems[0]);
+ if (addedToggle != null)
+ addedToggle.IsChecked = true;
+ }
}
internal void FocusSelectedItem ()
@@ -87,6 +91,15 @@ namespace Xamarin.PropertyEditing.Windows
toggle.Focus ();
}
+ private ToggleButton GetToggle (object item)
+ {
+ var presenter = (ContentPresenter) ItemContainerGenerator.ContainerFromItem (item);
+ if (presenter == null)
+ return null;
+
+ return VisualTreeHelper.GetChild (presenter, 0) as ToggleButton;
+ }
+
private void OnItemContainerGeneratorOnStatusChanged (object sender, EventArgs args)
{
if (ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated)