Как добавить тип ControlTemplate.Triggers в сетку, которая внутри <DataTemplate>структура, использующая только XAML? - PullRequest
0 голосов
/ 24 января 2020

У меня есть повторяющаяся сетка, в которой я хочу, чтобы во всех пустых текстах и ​​раскрывающихся списках автоматически отображался текст с надписью «Выбрать», когда значение элемента пустое / пустое и не выбрано.

Я могу определить триггер, чтобы сделать это для простой сетки, используя следующую структуру:

    <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.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 = "Text" Value = "" строка всех таблиц в списке показывает «Выбрать» независимо от их значения (как я и ожидал). Так что мне нужно ограничить это типами TextBox (используя DataTemplate.Resources !?), или это просто неправильный подход?

Я гуглил это, но, возможно, я задаю неправильные вопросы !? Любая помощь будет оценена.

...