我有一个重复的网格,我要在其中使所有空白文本和下拉框自动显示文本,当项目值为空白/空值并且未被选中时,会显示“选择”。
我可以使用以下结构为简单的网格定义触发条件:
<ControlTemplate >
<Grid>
… set grid
</Grid>
<ControlTemplate.Triggers>
… set triggers
</ControlTemplate.Triggers>
</ControlTemplate>
我要做的是将其插入以下结构:
<ItemsControl … >
<ItemsControl.ItemsPanel>
<itemspaneltemplate>
<StackPanel Orientation="Horizontal" … >
</StackPanel>
</itemspaneltemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
… set grid
</Grid>
</DataTemplate>
<ItemsControl.ItemTemplate>
<ItemsControl>
那么如何将触发器附加到DataTemplate内的网格上?
我尝试添加DataTemplate.Triggers,但这在使用以下代码时给出了一个错误消息:“成员“文本”无法识别或不可访问”:
<DataTemplate>
<Grid ...>
<DataTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsKeyboardFocusWithin" Value="False" />
<Condition Property="Text" Value="" /> <-- Errors heer
</MultiTrigger.Conditions>
<Setter TargetName="SamplingDate" Property="Text" Value="Select"/>
</MultiTrigger>
</DataTemplate.Triggers>
</DataTemplate>
这是因为我没有将TargetType设置为“ TextBox”吗?
如果我删除 Condition Property =“ Text” Value =“” 行,则列表中的所有表均显示为“选择”,而与它们的值无关(正如我期望的那样) )。所以我需要将其限制为TextBox类型(使用DataTemplate.Resources !?),还是这种方法错误?
我已经用谷歌搜索了,但是也许我问错了问题!?任何帮助将不胜感激。