wpf - 没有根据 ContentControl 中的数据类型点击我的数据模板,为什么不呢?

标签 wpf xaml data-binding entity-framework-6

我的数据模板都没有根据 DataContext 的数据类型显示。传递到 UserControl 的 DataContext 的实际对象是一个实体 (EntityFrameWork 6.0)。

我指定 DataType="{x:Type pf:Promotion}",它是实体所基于的 POCO 类的名称。

(xmlns:pf="clr-namespace:PFModel;程序集=PFModel")

我迷路了,不知道问题出在哪里。感谢您的任何帮助或提示。

<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 }"/>

回答第一个问题,该控件已使用促销、赌场、促销或详细信息的实体正确设置了数据上下文。

我也尝试过使用绑定(bind)属性,例如:

  <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>

文本框绑定(bind)很好,实体就在那里,我得到了预期的数据。

这不是数据绑定(bind)问题。我有上下文并且有合适的对象。

我想到了一些我需要尝试的其他事情。让我回复你。

最佳答案

事实证明,我做错的事情(除了顽固地认为自己认为错误的事情,并试图在凌晨 3 点解决我的问题,以及过度思考总体问题之外)还遗漏了:

内容=“{绑定(bind)}”

顺便说一句,我在评论中错过了哪些方式,我记得读过 datacontext,那是因为我感到疲倦和沮丧。

解决问题的是对内容控件的修改

 <ContentControl  Content="{Binding}" >

关于wpf - 没有根据 ContentControl 中的数据类型点击我的数据模板,为什么不呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49546821/

相关文章:

c# - DataGridTemplateColumn.HeaderTemplate 问题

wpf - 将 DataTemplate 用于基础设施 XamComboEditor (WPF)

c# - 使用静态 TabItem 将集合绑定(bind)到 WPF TabControl

c# - WPF CheckBox 多重绑定(bind)

c# - CartesianChart(实时图表)不适用于 DataTemplate

c# - Windows Phone Xaml 上不存在 GridView SelectedItem 指示器

xaml - 如何在 WP8 中增加 VirtualizingStackPanel 的范围?

c# - DataGrid -- AlternatingRowBackground 颜色干扰 "IsMouseOver"颜色

c# - 绑定(bind)到 UserControl 的依赖属性

javascript - 为什么不能通过数据绑定(bind)分配元素的类?