[4sem] isaip01 done
This commit is contained in:
parent
494525d878
commit
6d9a79be20
12 changed files with 410 additions and 0 deletions
33
4sem/isaip/01/PlayfairCypher/ViewLocator.cs
Normal file
33
4sem/isaip/01/PlayfairCypher/ViewLocator.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Templates;
|
||||
using PlayfairCypher.ViewModels;
|
||||
using ReactiveUI;
|
||||
|
||||
namespace PlayfairCypher
|
||||
{
|
||||
public class ViewLocator : IDataTemplate
|
||||
{
|
||||
public bool SupportsRecycling => false;
|
||||
|
||||
public IControl Build(object data)
|
||||
{
|
||||
var name = data.GetType().FullName!.Replace("ViewModel", "View");
|
||||
var type = Type.GetType(name);
|
||||
|
||||
if (type != null)
|
||||
{
|
||||
return (Control) Activator.CreateInstance(type)!;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new TextBlock {Text = "Not Found: " + name};
|
||||
}
|
||||
}
|
||||
|
||||
public bool Match(object data)
|
||||
{
|
||||
return data is ReactiveObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue