我的datatemplates都没有根据DataContext的DataType显示。传递给UserControl的DataContext的实际对象是Entity(EntityFrameWork 6.0)。
我指定DataType =" {x:Type pf:Promotion}"这是实体所基于的POCO类的名称。
(的xmlns:PF =" CLR-名称空间:PFModel;装配= PFModel&#34)
我迷失在这里,不知道问题出在哪里。感谢任何帮助或提示。
<UserControl x:Class="PFPromoEditor.UserControls.CenterEditor"
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:local="clr-namespace:PFPromoEditor.UserControls"
xmlns:wpfTool="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
xmlns:pf="clr-namespace:PFModel;assembly=PFModel"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Border BorderBrush="#FF000000" Margin="2" Padding="5" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8">
<ContentControl>
<ContentControl.Resources>
<DataTemplate DataType="{x:Type pf:Promotion}">
<TextBox Text="Promotion DATA type" />
</DataTemplate>
<DataTemplate DataType="{x:Type pf:Casino}">
<TextBox Text="Casino DATA type" />
</DataTemplate>
<DataTemplate DataType="{x:Type pf:Progressive}">
<TextBlock Text="Progressive DATA type" />
</DataTemplate>
<DataTemplate DataType="{x:Type pf:Detail}">
<TextBox Text="Detail DATA type" />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
</Border>
</Grid>
<local:CenterEditor x:Name="CenterContent" DataContext="{Binding ElementName=promoMenu,Path=MySelectedItem }"/>
对第一个问题的回答,控件的datacontext与促销,赌场,促销或细节的实体正确设置。
我也尝试过绑定属性,如:
<DataTemplate DataType="{x:Type pf:Progressive}">
<Grid>
<TextBlock Text="Progressive DATA type" />
<TextBox Text="{Binding Path=Detail.Title, FallbackValue= 'Select any Item in list to edit'}"/>
</Grid>
</DataTemplate>
仍然没有,空白。
我刚刚放了类似的东西:
<TextBox Text="{Binding Path=Detail.Title, FallbackValue= 'Select any Item in list to edit'}"/>
在上面的代码中如此:
</DataTemplate>
</ContentControl.Resources>
<TextBox Text="{Binding Path=Detail.Title, FallbackValue= 'Select any Item in list to edit'}"/>
</ContentControl>
文本框绑定没问题,实体就在那里,我得到了预期的数据。
它不是数据绑定问题。我有上下文,我有一个合适的对象。
我想到了其他一些我需要尝试的事情。让我回复你。
答案 0 :(得分:1)
事实证明我做错了(除了对我认为错误的事情感到顽固,并且试图在凌晨3点解决我的问题,并且一般都在思考问题)是遗漏:
内容= “{结合}”
我在评论中错过了BTW的方式,我记得读过datacontext,那是因为我感到疲倦和沮丧。解决问题的是对内容控件的这种修改
MyFunction2()