using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using PolyTrader.App.Avalonia.ViewModels;
namespace PolyTrader.App.Avalonia.Controls
{
///
/// Zeigt ein beliebiges Einstellungsobjekt als kategorisiertes Formular. Ersetzt das
/// WinForms-PropertyGrid an allen vier Stellen (Server-Settings, Account-Einstellungen,
/// Master-Trader, ResolutionFarming) – ein Aufruf je Fenster, kein Feld-Code.
///
/// Änderungen wirken direkt auf dem übergebenen Objekt; das Speichern (Datei/DB) bleibt
/// Sache des jeweiligen Fensters – genau wie zuvor beim PropertyGrid.
///
public partial class SettingsEditor : UserControl
{
public SettingsEditor() => AvaloniaXamlLoader.Load(this);
/// Setzt das anzuzeigende Objekt (oder null, um zu leeren).
/// false blendet Geheimnisfelder aus (#567).
public void Show(object? target, bool includeSensitive = true)
{
var list = this.FindControl("sections")!;
list.ItemsSource = target == null ? null : SettingsModelBuilder.Build(target, includeSensitive);
}
}
}