Perché il seguente pezzo di XAML mi fornisce XamlParseException con il messaggio (senza significato) "Il tipo di espressione non è un valore di stile valido". in fase di esecuzione?Utilizzo di TemplateBinding in ControlTemplate.Triggers
<Control x:Class="TestApp.Max.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:Max="clr-namespace:TestApp.Max"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Control.Template>
<ControlTemplate>
<TextBlock Name="txt" Text="{TemplateBinding Max:MyControl.Foo}" />
<ControlTemplate.Triggers>
<Trigger Property="Control.IsMouseOver" Value="True">
<Setter TargetName="txt" Property="Text" Value="{TemplateBinding Max:MyControl.Bar}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Control.Template>
</Control>
La linea incriminata è
<Setter TargetName="txt" Property="Text" Value="{TemplateBinding Max:MyControl.Bar}" />
Se si sostituisce la TemplateBinding con un normale Binding comincia a lavorare:
{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Text2}
Non dovrei essere in grado di utilizzare un TemplateBinding dal Sono all'interno di un ControlTemplate? E cosa significa veramente il messaggio di eccezione?
Ho solo pensato di farmi sapere che sto avendo un problema simile, completamente dimenticato di poter usare una rilegatura regolare, grazie per il lavoro svolto. – Hugoagogo