Я хочу создать триггер для элемента управления Entry, который изменит текст элемента управления Label, когда элемент управления Entry получит фокус, и снова изменит текст метки на стандартный, если элемент управления Entry потеряет фокус.
I Я выполнил приведенный ниже код, но это изменяет текст метки, когда текст вводится в элемент управления Entry, но я хочу изменить его, когда элемент управления Entry получает фокус, а не изменение текста.
<Label
x:Name="HeaderText"
Text="Lets start here">
<Label.Triggers>
<MultiTrigger TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding Source={x:Reference TextEntry},
Path=Text.Length,
Converter={StaticResource dataHasBeenEntered}}"
Value="true" />
</MultiTrigger.Conditions>
<Setter Property="Text" Value="Enter Name" />
</MultiTrigger>
</Label.Triggers>
</Label>
MultiTriggerConverter
public class MultiTriggerConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if ((int)value > 0) // length > 0 ?
return true; // some data has been entered
else
return false; // input is empty
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}