类型
System.Data.Entity.DynamicProxies
被ef用作启用延迟加载的代理。可以通过设置禁用代理创建
ObjectContext.ContextOptions.ProxyCreationEnabled
错误。
link
但是,建议使用ViewModels作为绑定源,而不是使用EF模型。
还可以将新属性添加到EF模型(或者最好添加到VM)中,作为每个项绑定的源:
[NotMapped]
public string FirstLastName { get { return FirstName + ", " + LastName; } }
link
你应该记住
DataContext
属于
ItemTemplate
引用集合的每个元素。所以类型为的对象的路径
Contact
是
.
不
Contacts
.
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MBC}" ConverterParameter="LastNameFirst" >
<Binding Path="."/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
我还注意到您使用了一个具有一个值的多值转换器。你可以这样做:
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MBC}" ConverterParameter="LastNameFirst" >
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if(parameter == "LastNameFirst")
return string.Format("{0}, {1}", values[0], values[1]);
else
return string.Format("{0}, {1}", values[1], values[0]);
}