1
我是WPF的新手。將Unity容器傳遞給WPF轉換器類
我想知道如何進行依賴注入我IUnityContainer類,只有在XAML代碼有一個視圖模型。
小更新:
有一類名爲:LiveVideoTileControl - 我已經添加了容器吧。
我有窗戶,有一定的轉換:
<UserControl x:Class="Driver.Test.Views.LiveVideoTileControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ViewModels="clr-namespace:Driver.Test.ViewModel"
xmlns:Driver="clr-namespace:Driver.Test.DriverRelated"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" >
<UserControl.Resources>
<Driver:CameraToMediaElementConverter x:Key="converter"/>
</UserControl.Resources>
<ScrollViewer>
<Grid>
<ContentControl Content="{Binding CameraEntity,Converter={StaticResource converter}}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
</ContentControl>
</Grid>
</ScrollViewer>
</UserControl>
我怎麼能注入容器類「CameraToMediaElementConverter」?
class CameraToMediaElementConverter : IValueConverter
{
public object Convert(object cameraEntity, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((cameraEntity as ICameraEntity) != null)
{
return DriverWrapper.GetControlForCamera((ICameraEntity)cameraEntity);
}
throw new NotImplementedException();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
您必須手動執行(FactoryPattern或任何您喜歡的) - 本文:http://slickthought.net/post/2011/01/17/簡單依賴注入與 - XAML.aspx演示瞭如何注入到使用純XAML(但仍手動) – Carsten
我想我可以總結我的2個參數中的1並把它作爲對象來轉換屬性(對象wrapperObj) ..而不是發送1對象在轉換(..) – ilansch
否 - 這將使您的代碼不可讀 - 你看看我鏈接的文章?設置爲'converter'正確的,在你的XAML似乎是IMO – Carsten