EventLoop V1
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq.Expressions;
|
||||
using DeclarativeProperty;
|
||||
using FileTime.App.Core.ViewModels;
|
||||
using FileTime.ConsoleUI.App.Extensions;
|
||||
using TerminalUI;
|
||||
using TerminalUI.Controls;
|
||||
using TerminalUI.Extensions;
|
||||
@@ -11,23 +10,39 @@ namespace FileTime.ConsoleUI.App;
|
||||
public class MainWindow
|
||||
{
|
||||
private readonly IConsoleAppState _consoleAppState;
|
||||
private readonly IApplicationContext _applicationContext;
|
||||
private const int ParentColumnWidth = 20;
|
||||
|
||||
public MainWindow(IConsoleAppState consoleAppState)
|
||||
public MainWindow(IConsoleAppState consoleAppState, IApplicationContext applicationContext)
|
||||
{
|
||||
_consoleAppState = consoleAppState;
|
||||
_applicationContext = applicationContext;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
ListView<IAppState, IItemViewModel> selectedItemsView = new();
|
||||
ListView<IAppState, IItemViewModel> selectedItemsView = new()
|
||||
{
|
||||
ApplicationContext = _applicationContext
|
||||
};
|
||||
selectedItemsView.DataContext = _consoleAppState;
|
||||
selectedItemsView.ItemTemplate = item =>
|
||||
{
|
||||
var textBlock = item.CreateChild<TextBlock<IItemViewModel>>();
|
||||
textBlock.Bind(
|
||||
textBlock,
|
||||
dc => dc == null ? string.Empty : dc.DisplayNameText,
|
||||
tb => tb.Text
|
||||
);
|
||||
|
||||
return textBlock;
|
||||
};
|
||||
|
||||
selectedItemsView.Bind(
|
||||
selectedItemsView,
|
||||
appState => appState.SelectedTab.Map(t => t == null ? null : t.CurrentItems).Switch(),
|
||||
v => v.ItemsSource);
|
||||
|
||||
selectedItemsView.Render();
|
||||
selectedItemsView.RequestRerender();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user