datatemplate中的控件未接收输入交互

时间:2017-04-27 02:39:02

标签: wpf xaml mef datatemplate

我有一个类DataTemplate,如下所示:

<DataTemplate DataType="{x:Type model:CalendarEvent}">
    <Border BorderBrush="Black"
            BorderThickness="1">
        <Grid Margin="10">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition />
            </Grid.RowDefinitions>
            <TextBox Width="80"
                     Margin="0 0 20 0"
                     HorizontalAlignment="Right" />
            <TextBlock Grid.Row="0"
                       FontSize="36"
                       Text="{Binding EventName}" />
            <TextBlock Grid.Row="1">
                <Run Text="From " /><Run Text="{Binding EventStartDate}" />
                <Run Text=" till " /><Run Text="{Binding EventEndDate}" /></TextBlock>
        </Grid>
    </Border>
</DataTemplate>

将模板用作ItemTemplate的{​​{1}}后,我无法与其中的控件进行交互。当我尝试单击任何控件(因为它是列表中的项目)时,整个ItemsControl都会被关注。实际上,我将ItemsControl放在那里以确认模板没有接收到交互。我的原始模板有TextBox(也没有收到任何Button事件。)

我应该指出模板是Click应用程序中插件的一部分。这可能是原因吗?在主机项目中,MEF中的控件正在运行。

编辑

DataTemplate

<DataTemplate DataType="{x:Type model:CalendarEvent}"> <Border BorderBrush="Black" BorderThickness="1"> <Grid Margin="10"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" FontSize="36" Text="{Binding EventName}" /> <TextBlock Grid.Row="1"> <Run Text="From " /><Run Text="{Binding EventStartDate}" /> <Run Text=" till " /><Run Text="{Binding EventEndDate}" /></TextBlock> <TextBox Width="80" Margin="0 0 20 0" HorizontalAlignment="Right" /> </Grid> </Border> </DataTemplate> 移到TextBox以下的位置。它们被它们模糊了,因为它们会自动填充TextBlock的宽度 我也可以为Grid设置固定宽度。

0 个答案:

没有答案