У меня есть ComboBox, и я хочу изменить его внешний вид, когда свойство ItemsSource равно нулю. Когда он находится в этом состоянии, я хочу показать TextPanel с текстом «Извлечение данных» и придать ему вид, похожий на текстовое поле с водяными знаками.
Я полагаю, что для этого мне нужен ControlTemplate и триггер. У меня есть ControlTemplate здесь:
<ControlTemplate x:Key="LoadingComboTemplate" TargetType="{x:Type ComboBox}">
<Grid>
<TextBlock x:Name="textBlock" Opacity="0.345" Text="Retrieving data..." Visibility="Hidden" />
</Grid>
<!--
<ControlTemplate.Triggers>
<Trigger Property="ComboBox.ItemsSource" Value="0">
<Setter Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
-->
</ControlTemplate>
но моя проблема в том, как настроить триггер, чтобы показать это, когда свойство ItemsSource имеет значение null? Я пробовал несколько разных способов, и каждый из них выдавал мне сообщение об ошибке «Значение« ItemsSource »не может быть присвоено свойству« Property ». Недопустимое значение PropertyDescriptor». Мой ComboBox xaml (включая попытку запуска):
<ComboBox Margin="112,35,80,0"
Name="MyComboBox"
Height="22.723"
VerticalAlignment="Top"
DisplayMemberPath="FriendlyName"
SelectedValuePath="Path"
TabIndex="160"
>
<Trigger>
<Condition Property="ItemsSource" Value="0" />
<Setter Property="Template" Value="{StaticResource LoadingComboTemplate}" />
</Trigger>
</ComboBox>
теперь должен ли триггер идти на ComboBox или на ControlTemplate? Как мне получить доступ к свойству ItemsSource ComboBox? Должен ли я даже использовать триггер?
Спасибо!