如何仅使用XAML将ControlTemplate.Triggers类型添加到<ItemsControl.ItemTemplate> <DataTemplate>结构内部的网格中?

我有一个重复的网格,我要在其中使所有空白文本和下拉框自动显示文本,当项目值为空白/空值并且未被选中时,会显示“选择”。

我可以使用以下结构为简单的网格定义触发条件:

    <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 !?),还是这种方法错误?

我已经用谷歌搜索了,但是也许我问错了问题!?任何帮助将不胜感激。

dcx6327 回答:如何仅使用XAML将ControlTemplate.Triggers类型添加到<ItemsControl.ItemTemplate> <DataTemplate>结构内部的网格中?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2719409.html

大家都在问