,你可以告訴WPF明確表示要綁定到一個接口字段綁定到接口:
(請注意,ViewModelBase是一個實現了INotifyPropertyChanged接口一個基類)
public class Implementation : ViewModelBase, IInterface
{
private string textField;
public string TextField
{
get
{
return textField;
}
set
{
if (value == textField) return;
textField = value;
OnPropertyChanged();
}
}
}
public interface IInterface
{
string TextField { get; set; }
}
然後在視圖模型:
private IInterface interfaceContent;
public IInterface InterfaceContent
{
get { return interfaceContent; }
}
最後XAML中,它使:
<ContentControl Grid.Row="1" Grid.Column="0" Content="{Binding InterfaceContent}">
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type viewModels:IInterface}">
<TextBox Text="{Binding Path=(viewModels:IInterface.TextField)}"/>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
正如您所看到的,綁定明確指向'IInterface'定義。
如何使用一個'ContentControl'來設置它是'ContentTemplate'基於一個'DataTrigger',它將DataContext和Interface傳遞給一個'IValueConverter'?然後,您可以測試Value是否是使用Parameter傳入的類型,如果True使用適當的DataTemplate – Rachel 2013-02-22 13:13:01