我有一个类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
设置固定宽度。