Cześć, zastanawiam się nad jedną rzeczą. Czy można w jakiś sposób wstrzyknąć do konwertera obiekt nie zaśmiecając kodu?
Generalnie mam konwerter, który pełni rolę "tłumacza". W sensie localizera. Używam go w niektórych miejscach w taki sposób:
<Line ToolTip="{Binding [0].ErrorContent, Converter={StaticResource TranslatorConverter}}"/>
Mój TranslatorConverter wygląda tak (część kodu usunięta dla czytelności):
class TranslatorConverter : IValueConverter
{
ILocalizer localizer;
public TranslatorConverter()
{
var container = Application.Current.Properties[nameof(IocContainer)] as IocContainer;
localizer = container.Resolve<ILocalizer>();
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
return localizer[value.ToString()];
else
return string.Empty;
}
}
A w App.xaml.cs mam:
ContainerBuilder builder = new ContainerBuilder();
factory = new IocContainer(builder);
Properties[nameof(IocContainer)] = factory;
Nie podoba mi się ten kod, ale nie wiem jak to zrobić lepiej. Więc, czy można to zrobić lepiej w takiej sytuacji? Chodzi mi o to, żeby nie dopisywać niczego do XAMLa.