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

CreateValueConverterWindow.xaml.cs « Xamarin.PropertyEditing.Windows - github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6281e620e45b123a46c3f8c7254bd13f7128c5f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using Xamarin.PropertyEditing.ViewModels;

namespace Xamarin.PropertyEditing.Windows
{
    internal partial class CreateValueConverterWindow
	    : WindowEx
    {
	    internal CreateValueConverterWindow (IEnumerable<ResourceDictionary> mergedResources, TargetPlatform platform, object target, AsyncValue<IReadOnlyDictionary<IAssemblyInfo, ILookup<string, ITypeInfo>>> assignableTypes)
	    {
		    DataContext = new AddValueConverterViewModel (platform, target, assignableTypes);
		    InitializeComponent ();
			Resources.MergedDictionaries.AddItems (mergedResources);
	    }

	    internal static Tuple<string, ITypeInfo, ResourceSource> RequestConverter (FrameworkElement owner, TargetPlatform platform, object target, AsyncValue<IReadOnlyDictionary<IAssemblyInfo, ILookup<string, ITypeInfo>>> assignableTypes)
	    {
		    Window hostWindow = Window.GetWindow (owner);
		    var w = new CreateValueConverterWindow (owner.Resources.MergedDictionaries, platform, target, assignableTypes) {
			    Owner = hostWindow,
		    };

		    if (!w.ShowDialog () ?? false)
			    return null;

		    var vm = (AddValueConverterViewModel) w.DataContext;

		    return new Tuple<string, ITypeInfo, ResourceSource> (w.converterName.Text, vm.SelectedType, vm.Source);
	    }

		private void OnSelectedItemChanged (object sender, RoutedPropertyChangedEventArgs<object> e)
	    {
		    this.ok.IsEnabled = (e.NewValue as ITypeInfo) != null;
	    }

	    private void OnItemActivated (object sender, System.EventArgs e)
	    {
		    DialogResult = true;
	    }

	    private void OnOkClicked (object sender, RoutedEventArgs e)
	    {
		    DialogResult = true;
	    }
	}
}