diff --git a/src/PackageManager.UI/Views/Browser.xaml b/src/PackageManager.UI/Views/Browser.xaml
index 5221324..a9f9512 100644
--- a/src/PackageManager.UI/Views/Browser.xaml
+++ b/src/PackageManager.UI/Views/Browser.xaml
@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dd="clr-namespace:PackageManager.Views.DesignData"
xmlns:controls="clr-namespace:PackageManager.Views.Controls"
+ xmlns:views="clr-namespace:PackageManager.Views"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{Binding Source={x:Static dd:ViewModelLocator.Browser}}" Background="White">
@@ -41,7 +42,7 @@
-
+
@@ -78,105 +79,39 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
diff --git a/src/PackageManager.UI/Views/Browser.xaml.cs b/src/PackageManager.UI/Views/Browser.xaml.cs
index f7893fe..b9d345d 100644
--- a/src/PackageManager.UI/Views/Browser.xaml.cs
+++ b/src/PackageManager.UI/Views/Browser.xaml.cs
@@ -1,7 +1,6 @@
using PackageManager.ViewModels;
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -38,6 +37,38 @@ private static void OnViewModelChanged(DependencyObject d, DependencyPropertyCha
view.OnViewModelChanged((BrowserViewModel)e.OldValue, (BrowserViewModel)e.NewValue);
}
+
+ internal PackageViewModel SelectedPackage
+ {
+ get { return (PackageViewModel)GetValue(SelectedPackageProperty); }
+ set { SetValue(SelectedPackageProperty, value); }
+ }
+
+ internal static readonly DependencyProperty SelectedPackageProperty = DependencyProperty.Register(
+ "SelectedPackage",
+ typeof(PackageViewModel),
+ typeof(Browser),
+ new PropertyMetadata(null)
+ );
+
+
+ internal PackageViewModel SelectedVersion
+ {
+ get { return (PackageViewModel)GetValue(SelectedVersionProperty); }
+ set { SetValue(SelectedVersionProperty, value); }
+ }
+
+ internal static readonly DependencyProperty SelectedVersionProperty = DependencyProperty.Register(
+ "SelectedVersion",
+ typeof(PackageViewModel),
+ typeof(Browser),
+ new PropertyMetadata(null, OnSelectedVersionChanged)
+ );
+
+ private static void OnSelectedVersionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ }
+
public Browser()
{
InitializeComponent();
@@ -74,15 +105,12 @@ private void OnSearchCompleted()
UpdateInitialMessage(false);
}
- private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
+ private void lvwPackages_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
- Process.Start(e.Uri.AbsoluteUri);
- e.Handled = true;
+ SelectedVersion = (PackageViewModel)lvwPackages.SelectedItem;
+ RaiseCanExecuteChangedOnCommands();
}
- private void lvwPackages_SelectionChanged(object sender, SelectionChangedEventArgs e)
- => RaiseCanExecuteChangedOnCommands();
-
private void cbxVersions_SelectionChanged(object sender, SelectionChangedEventArgs e)
=> RaiseCanExecuteChangedOnCommands();
diff --git a/src/PackageManager.UI/Views/Installed.xaml b/src/PackageManager.UI/Views/Installed.xaml
index 685e0dd..2962b50 100644
--- a/src/PackageManager.UI/Views/Installed.xaml
+++ b/src/PackageManager.UI/Views/Installed.xaml
@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dd="clr-namespace:PackageManager.Views.DesignData"
xmlns:controls="clr-namespace:PackageManager.Views.Controls"
+ xmlns:views="clr-namespace:PackageManager.Views"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{Binding Source={x:Static dd:ViewModelLocator.Installed}}" Background="White">
@@ -16,34 +17,52 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/PackageManager.UI/Views/Installed.xaml.cs b/src/PackageManager.UI/Views/Installed.xaml.cs
index ca14341..70c87bf 100644
--- a/src/PackageManager.UI/Views/Installed.xaml.cs
+++ b/src/PackageManager.UI/Views/Installed.xaml.cs
@@ -1,4 +1,5 @@
-using PackageManager.ViewModels;
+using PackageManager.Models;
+using PackageManager.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -37,6 +38,20 @@ private static void OnViewModelChanged(DependencyObject d, DependencyPropertyCha
view.OnViewModelChanged((InstalledViewModel)e.OldValue, (InstalledViewModel)e.NewValue);
}
+
+ internal IInstalledPackage SelectedPackage
+ {
+ get { return (IInstalledPackage)GetValue(SelectedPackageProperty); }
+ set { SetValue(SelectedPackageProperty, value); }
+ }
+
+ internal static readonly DependencyProperty SelectedPackageProperty = DependencyProperty.Register(
+ "SelectedPackage",
+ typeof(IInstalledPackage),
+ typeof(Installed),
+ new PropertyMetadata(null)
+ );
+
public Installed()
{
InitializeComponent();
@@ -61,5 +76,11 @@ void IAutoFocus.Focus()
ViewModel.Refresh.Execute();
lvwPackages.Focus();
}
+
+ private void lvwPackages_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ ViewModel.Uninstall.RaiseCanExecuteChanged();
+ ViewModel.Reinstall.RaiseCanExecuteChanged();
+ }
}
}
diff --git a/src/PackageManager.UI/Views/PackageDetail.xaml b/src/PackageManager.UI/Views/PackageDetail.xaml
new file mode 100644
index 0000000..a335ddb
--- /dev/null
+++ b/src/PackageManager.UI/Views/PackageDetail.xaml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/PackageManager.UI/Views/PackageDetail.xaml.cs b/src/PackageManager.UI/Views/PackageDetail.xaml.cs
new file mode 100644
index 0000000..4619b7b
--- /dev/null
+++ b/src/PackageManager.UI/Views/PackageDetail.xaml.cs
@@ -0,0 +1,53 @@
+using PackageManager.Models;
+using PackageManager.ViewModels;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace PackageManager.Views
+{
+ public partial class PackageDetail : UserControl
+ {
+ public IPackage Model
+ {
+ get { return (IPackage)GetValue(ViewModelProperty); }
+ set { SetValue(ViewModelProperty, value); }
+ }
+
+ public static readonly DependencyProperty ViewModelProperty = DependencyProperty.Register(
+ "Model",
+ typeof(IPackage),
+ typeof(PackageDetail),
+ new PropertyMetadata(null, OnModelChanged)
+ );
+
+ private static void OnModelChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ PackageDetail view = (PackageDetail)d;
+ view.DataContext = view.Model;
+ }
+
+ public PackageDetail()
+ {
+ InitializeComponent();
+ }
+
+ private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
+ {
+ Process.Start(e.Uri.AbsoluteUri);
+ e.Handled = true;
+ }
+ }
+}
diff --git a/src/PackageManager.UI/Views/PackageName.xaml b/src/PackageManager.UI/Views/PackageName.xaml
new file mode 100644
index 0000000..a67fa49
--- /dev/null
+++ b/src/PackageManager.UI/Views/PackageName.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/src/PackageManager.UI/Views/PackageName.xaml.cs b/src/PackageManager.UI/Views/PackageName.xaml.cs
new file mode 100644
index 0000000..be70fdb
--- /dev/null
+++ b/src/PackageManager.UI/Views/PackageName.xaml.cs
@@ -0,0 +1,47 @@
+using PackageManager.Models;
+using PackageManager.ViewModels;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace PackageManager.Views
+{
+ public partial class PackageName : UserControl
+ {
+ public IPackage Model
+ {
+ get { return (IPackage)GetValue(ViewModelProperty); }
+ set { SetValue(ViewModelProperty, value); }
+ }
+
+ public static readonly DependencyProperty ViewModelProperty = DependencyProperty.Register(
+ "Model",
+ typeof(IPackage),
+ typeof(PackageName),
+ new PropertyMetadata(null, OnModelChanged)
+ );
+
+ private static void OnModelChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ PackageName view = (PackageName)d;
+ view.DataContext = view.Model;
+ }
+
+ public PackageName()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/PackageManager.UI/Views/Updates.xaml b/src/PackageManager.UI/Views/Updates.xaml
index 394d3d6..9e84904 100644
--- a/src/PackageManager.UI/Views/Updates.xaml
+++ b/src/PackageManager.UI/Views/Updates.xaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dd="clr-namespace:PackageManager.Views.DesignData"
+ xmlns:views="clr-namespace:PackageManager.Views"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{Binding Source={x:Static dd:ViewModelLocator.Updates}}" Background="White">
@@ -16,39 +17,58 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/PackageManager.UI/Views/Updates.xaml.cs b/src/PackageManager.UI/Views/Updates.xaml.cs
index 14feda6..c019b56 100644
--- a/src/PackageManager.UI/Views/Updates.xaml.cs
+++ b/src/PackageManager.UI/Views/Updates.xaml.cs
@@ -37,6 +37,21 @@ private static void OnViewModelChanged(DependencyObject d, DependencyPropertyCha
view.OnViewModelChanged((UpdatesViewModel)e.OldValue, (UpdatesViewModel)e.NewValue);
}
+
+ internal PackageUpdateViewModel SelectedPackage
+ {
+ get { return (PackageUpdateViewModel)GetValue(SelectedPackageProperty); }
+ set { SetValue(SelectedPackageProperty, value); }
+ }
+
+ internal static readonly DependencyProperty SelectedPackageProperty = DependencyProperty.Register(
+ "SelectedPackage",
+ typeof(PackageUpdateViewModel),
+ typeof(Updates),
+ new PropertyMetadata(null)
+ );
+
+
public Updates()
{
InitializeComponent();
@@ -61,5 +76,10 @@ async void IAutoFocus.Focus()
lvwPackages.Focus();
await ViewModel.Refresh.ExecuteAsync();
}
+
+ private void lvwPackages_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ ViewModel.Update.RaiseCanExecuteChanged();
+ }
}
}