Tại sao đoạn XAML sau đây cho tôi một XamlParseException với thông báo (vô nghĩa) "Loại biểu thức không phải là một giá trị Style hợp lệ." trong thời gian chạy?Sử dụng một TemplateBinding trong 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>
Dòng vi phạm là
<Setter TargetName="txt" Property="Text" Value="{TemplateBinding Max:MyControl.Bar}" />
Nếu tôi thay thế TemplateBinding với một bình thường Ràng buộc nó bắt đầu làm việc:
{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Text2}
tôi không nên có thể sử dụng một TemplateBinding từ Tôi đang ở trong ControlTemplate? Và thông điệp ngoại lệ thực sự có ý nghĩa gì?
Tôi chỉ nghĩ rằng mình sẽ gắn chip vào vấn đề tương tự, hoàn toàn quên mất việc có thể sử dụng liên kết thường xuyên, cảm ơn công việc xung quanh. – Hugoagogo