mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
Additional fields Add, Update and Delete work (too well)
SelectableListView works when programmatically setting selection
This commit is contained in:
@@ -19,9 +19,17 @@ namespace ModernKeePass.Controls
|
||||
|
||||
public SelectableTemplateListView()
|
||||
{
|
||||
ContainerContentChanging += SelectableTemplateListView_ContainerContentChanging;
|
||||
SelectionChanged += SelectableTemplateListView_SelectionChanged;
|
||||
}
|
||||
|
||||
private void SelectableTemplateListView_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
|
||||
{
|
||||
args.ItemContainer.ContentTemplate = args.ItemContainer.IsSelected
|
||||
? SelectedItemTemplate
|
||||
: ItemTemplate;
|
||||
}
|
||||
|
||||
private void SelectableTemplateListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
var listView = sender as ListView;
|
||||
|
9
WinAppCommon/Messages/EntryFieldNameChangedMessage.cs
Normal file
9
WinAppCommon/Messages/EntryFieldNameChangedMessage.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Messages
|
||||
{
|
||||
public class EntryFieldNameChangedMessage
|
||||
{
|
||||
public string OldName { get; set; }
|
||||
public string NewName { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
}
|
8
WinAppCommon/Messages/EntryFieldValueChangedMessage.cs
Normal file
8
WinAppCommon/Messages/EntryFieldValueChangedMessage.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Messages
|
||||
{
|
||||
public class EntryFieldValueChangedMessage
|
||||
{
|
||||
public string FieldName { get; set; }
|
||||
public string FieldValue { get; set; }
|
||||
}
|
||||
}
|
37
WinAppCommon/ViewModels/Items/FieldVm.cs
Normal file
37
WinAppCommon/ViewModels/Items/FieldVm.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using GalaSoft.MvvmLight;
|
||||
using Messages;
|
||||
|
||||
namespace ModernKeePass.ViewModels.ListItems
|
||||
{
|
||||
public class FieldVm: ViewModelBase
|
||||
{
|
||||
private string _name;
|
||||
private string _value;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return _name; }
|
||||
set
|
||||
{
|
||||
MessengerInstance.Send(new EntryFieldNameChangedMessage { OldName = Name, NewName = value, Value = Value });
|
||||
Set(nameof(Name), ref _name, value);
|
||||
}
|
||||
}
|
||||
|
||||
public string Value
|
||||
{
|
||||
get { return _value; }
|
||||
set
|
||||
{
|
||||
MessengerInstance.Send(new EntryFieldValueChangedMessage { FieldName = Name, FieldValue = value });
|
||||
Set(nameof(Value), ref _value, value);
|
||||
}
|
||||
}
|
||||
|
||||
public FieldVm(string fieldName, string fieldValue)
|
||||
{
|
||||
_name = fieldName;
|
||||
_value = fieldValue;
|
||||
}
|
||||
}
|
||||
}
|
@@ -13,6 +13,7 @@ namespace ModernKeePass.ViewModels
|
||||
{
|
||||
private readonly IRecentProxy _recent;
|
||||
private ObservableCollection<RecentItemVm> _recentItems;
|
||||
private int _selectedIndex;
|
||||
|
||||
public ObservableCollection<RecentItemVm> RecentItems
|
||||
{
|
||||
@@ -21,7 +22,13 @@ namespace ModernKeePass.ViewModels
|
||||
}
|
||||
|
||||
public ICommand ClearAllCommand { get; }
|
||||
|
||||
|
||||
public int SelectedIndex
|
||||
{
|
||||
get { return _selectedIndex; }
|
||||
set { Set(() => SelectedIndex, ref _selectedIndex, value); }
|
||||
}
|
||||
|
||||
public RecentVm(IRecentProxy recent)
|
||||
{
|
||||
_recent = recent;
|
||||
@@ -34,6 +41,7 @@ namespace ModernKeePass.ViewModels
|
||||
{
|
||||
var recentItems = _recent.GetAll().Select(r => new RecentItemVm(r));
|
||||
RecentItems = new ObservableCollection<RecentItemVm>(recentItems);
|
||||
if (RecentItems.Any()) SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void ClearAll()
|
||||
|
@@ -36,10 +36,13 @@
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\DatabaseOpenedMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\DatabaseOpeningMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\DatabaseSavedMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\EntryFieldNameChangedMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\EntryFieldValueChangedMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\FileNotFoundMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\NavigateToPageMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Messages\SaveErrorMessage.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\AboutVm.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Items\FieldVm.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\ViewModelLocatorCommon.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Items\ListMenuItemVm.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Items\MainMenuItemVm.cs" />
|
||||
|
Reference in New Issue
Block a user