Removed Reactive stuff and do code cleanup
This commit is contained in:
@ -1,12 +1,44 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewModels="clr-namespace:AvaloniaCoreRTDemo.Controls.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="AvaloniaCoreRTDemo.Controls.MainControl"
|
||||
x:CompileBindings="True"
|
||||
x:DataType="viewModels:MainControlViewModel">
|
||||
<Grid ColumnDefinitions="*,*" RowDefinitions="Auto,Auto,*" Margin="32">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" TextAlignment="Center" Margin="0,6">Welcome to Avalonia UI + NativeAOT!</TextBlock>
|
||||
<Image Grid.Row="1" Grid.Column="0" Stretch="None" Source="{Binding DotNetImage}"/>
|
||||
<Image Grid.Row="1" Grid.Column="1" Stretch="None" Source="{Binding AvaloniaImage}"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Watermark="Type here" AcceptsReturn="True" TextWrapping="Wrap" Text="{Binding Text}"/>
|
||||
</Grid>
|
||||
<UserControl
|
||||
x:Class="AvaloniaCoreRTDemo.Controls.MainControl"
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewModels="clr-namespace:AvaloniaCoreRTDemo.Controls.ViewModels"
|
||||
d:DesignHeight="450"
|
||||
d:DesignWidth="800"
|
||||
x:CompileBindings="True"
|
||||
x:DataType="viewModels:MainControlViewModel"
|
||||
mc:Ignorable="d">
|
||||
<Grid
|
||||
Margin="32"
|
||||
ColumnDefinitions="*,*"
|
||||
RowDefinitions="Auto,Auto,*">
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="0,6"
|
||||
TextAlignment="Center">
|
||||
Welcome to Avalonia UI + NativeAOT!
|
||||
</TextBlock>
|
||||
<Image
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
Source="{Binding DotNetImage}"
|
||||
Stretch="None" />
|
||||
<Image
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Source="{Binding AvaloniaImage}"
|
||||
Stretch="None" />
|
||||
<TextBox
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
AcceptsReturn="True"
|
||||
Text="{Binding Text}"
|
||||
TextWrapping="Wrap"
|
||||
Watermark="Type here" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
@ -9,18 +9,18 @@ namespace AvaloniaCoreRTDemo.Controls
|
||||
{
|
||||
public MainControl()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
this.DataContext = new MainControlViewModel();
|
||||
DataContext = new MainControlViewModel();
|
||||
}
|
||||
|
||||
public void Reload(IMainWindowState model)
|
||||
{
|
||||
this.DataContext = new MainControlViewModel(model);
|
||||
DataContext = new MainControlViewModel(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,48 +1,46 @@
|
||||
using System;
|
||||
|
||||
using Avalonia.Media.Imaging;
|
||||
|
||||
using ReactiveUI;
|
||||
using Avalonia.Media.Imaging;
|
||||
using MvvmGen;
|
||||
|
||||
namespace AvaloniaCoreRTDemo.Controls.ViewModels
|
||||
{
|
||||
internal sealed class MainControlViewModel : ReactiveObject, IMainWindowState
|
||||
[ViewModel]
|
||||
internal sealed partial class MainControlViewModel : IMainWindowState
|
||||
{
|
||||
private readonly IBitmap _dotNetImage;
|
||||
private readonly IBitmap _avaloniaImage;
|
||||
private IBitmap _dotNetImage;
|
||||
private IBitmap _avaloniaImage;
|
||||
|
||||
private Boolean _unloadable = false;
|
||||
private bool _unloadable = false;
|
||||
|
||||
public IBitmap DotNetImage => this._dotNetImage;
|
||||
public IBitmap AvaloniaImage => this._avaloniaImage;
|
||||
public String? Text { get; set; }
|
||||
public IBitmap DotNetImage => _dotNetImage;
|
||||
public IBitmap AvaloniaImage => _avaloniaImage;
|
||||
public string? Text { get; set; }
|
||||
|
||||
public MainControlViewModel()
|
||||
partial void OnInitialize()
|
||||
{
|
||||
this._dotNetImage = Utilities.GetImageFromFile("dotnet.png");
|
||||
this._avaloniaImage = Utilities.GetImageFromFile("avalonia.png");
|
||||
_dotNetImage = Utilities.GetImageFromFile("dotnet.png");
|
||||
_avaloniaImage = Utilities.GetImageFromFile("avalonia.png");
|
||||
}
|
||||
|
||||
public MainControlViewModel(IMainWindowState state)
|
||||
public MainControlViewModel(IMainWindowState state) : this()
|
||||
{
|
||||
this._avaloniaImage = state.AvaloniaImage;
|
||||
this._dotNetImage = state.DotNetImage;
|
||||
this.Text = state.Text;
|
||||
_avaloniaImage = state.AvaloniaImage;
|
||||
_dotNetImage = state.DotNetImage;
|
||||
Text = state.Text;
|
||||
state.SetUnloadable();
|
||||
}
|
||||
|
||||
~MainControlViewModel()
|
||||
{
|
||||
if (!this._unloadable)
|
||||
if (!_unloadable)
|
||||
{
|
||||
this._dotNetImage.Dispose();
|
||||
this._avaloniaImage.Dispose();
|
||||
_dotNetImage.Dispose();
|
||||
_avaloniaImage.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
void IMainWindowState.SetUnloadable()
|
||||
{
|
||||
this._unloadable = true;
|
||||
_unloadable = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user