Я пытался использовать прилагаемые свойства и триггеры стиля, надеясь узнать больше об этом. Я написал очень простой WPF окно приложения с вложенным свойством:Обновление пользовательской привязанной недвижимости в стиле триггера со сетатором
public static readonly DependencyProperty SomethingProperty =
DependencyProperty.RegisterAttached(
"Something",
typeof(int),
typeof(Window1),
new UIPropertyMetadata(0));
public int GetSomethingProperty(DependencyObject d)
{
return (int)d.GetValue(SomethingProperty);
}
public void SetSomethingProperty(DependencyObject d, int value)
{
d.SetValue(SomethingProperty, value);
}
И я пытался обновить «нечто» вложенное свойство с триггером имущества, определенный в разделе Кнопки стиля:
<Window x:Class="TestStyleTrigger.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestStyleTrigger;assembly=TestStyleTrigger"
Title="Window1" Height="210" Width="190">
<Window.Resources>
<Style x:Key="buttonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="local:Window1.Something" Value="1" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Button Style="{StaticResource buttonStyle}"></Button>
</Window>
Тем не менее, я продолжал получать следующую ошибку компиляции:
ошибка MC4003: Невозможно разрешить свойство стиля «Что-то». Убедитесь, что тип владельца - это TargetType стиля, или используйте синтаксис Class.Property для указания свойства. Строка 10 Позиция 29.
Я не могу понять, почему она дает мне эту ошибку, потому что я использовал синтаксис «Class.Property» в теге раздела. Может ли кто-нибудь сказать мне, как я могу исправить эту ошибку компиляции?
У меня уже была полностью статическая ласка для моего AttachedProperty, а также с правильным Get и Set. Хотя я имел точно такое же исключение, как и OP, его также можно решить, удалив спецификацию сборки в пространстве имен (который в моем случае был автоматически добавлен ReSharper). +1 – LuckyLikey