by Anonymous » 29 Apr 2025, 12:48
Ich möchte meinem WPF IvalueConverter DI hinzufügen. Ich habe diese Frage hier bereits gefunden, aber sie funktioniert nur mit Xamarin . So lösen Sie eine Abhängigkeit von Ivalueconverter in Xamarin.formen mit Prism/Dryioc. Ich benutze Prism.wpf mit dem Unity -Container. Ist dies derzeit überhaupt möglich in WPF?
Code: Select all
public class ConnectionStatusToColorConverter : IValueConverter
{
private readonly ThemeManager _manager;
public ConnectionStatusToColorConverter(ThemeManager manager)
{
_manager = manager ?? throw new ArgumentNullException(nameof(manager));
}
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is ConnectionStatus status)
{
return status switch
{
ConnectionStatus.Connected => _manager.GetStaticColorBrush(StaticColor.Green),
ConnectionStatus.Disconnected => _manager.GetStaticColorBrush(StaticColor.Red),
_ => _manager.GetStaticColorBrush(StaticColor.Red),
};
}
return Brushes.Transparent;
}
public object ConvertBack(
object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Der themenanager wurde bereits in app.xaml.cs .protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
// used for dependency injection
containerRegistry.RegisterInstance(ManagerLocator.Resolve().Value);
}
< /code>
Der ManagerLocator ist geschrieben und funktioniert auch wie erwartet - also funktioniert der DI in den ViewModels < /p>
Wenn ich also mit der Anwendung beginne, erhalte ich diesen Fehler: < /p>
system.winds. 'At.active.fbcv4.info.Converters.ConnectionStatostoColorConverter'. Sie können die Argumente oder FactoryMethod -Anweisungen verwenden, um diesen Typ zu konstruieren.>
[url=viewtopic.php?t=14917]Ich möchte[/url] meinem WPF IvalueConverter DI hinzufügen. Ich habe diese Frage hier bereits gefunden, aber sie funktioniert nur mit Xamarin . So lösen Sie eine Abhängigkeit von Ivalueconverter in Xamarin.formen mit Prism/Dryioc. Ich benutze Prism.wpf mit dem Unity -Container. Ist dies derzeit überhaupt möglich in WPF?[code]public class ConnectionStatusToColorConverter : IValueConverter
{
private readonly ThemeManager _manager;
public ConnectionStatusToColorConverter(ThemeManager manager)
{
_manager = manager ?? throw new ArgumentNullException(nameof(manager));
}
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is ConnectionStatus status)
{
return status switch
{
ConnectionStatus.Connected => _manager.GetStaticColorBrush(StaticColor.Green),
ConnectionStatus.Disconnected => _manager.GetStaticColorBrush(StaticColor.Red),
_ => _manager.GetStaticColorBrush(StaticColor.Red),
};
}
return Brushes.Transparent;
}
public object ConvertBack(
object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
[/code]
Der themenanager wurde bereits in app.xaml.cs .protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
// used for dependency injection
containerRegistry.RegisterInstance(ManagerLocator.Resolve().Value);
}
< /code>
Der ManagerLocator ist geschrieben und funktioniert auch wie erwartet - also funktioniert der DI in den ViewModels < /p>
Wenn ich also mit der Anwendung beginne, erhalte ich diesen Fehler: < /p>
system.winds. 'At.active.fbcv4.info.Converters.ConnectionStatostoColorConverter'. Sie können die Argumente oder FactoryMethod -Anweisungen verwenden, um diesen Typ zu konstruieren.>