Próbowałem załączonych właściwości i wyzwalaczy stylu, mając nadzieję dowiedzieć się więcej na ten temat. Napisałem bardzo prosty okien WPF aplikacji z dołączonym nieruchomości:Aktualizowanie niestandardowej właściwości dołączonej w stylu Wyzwalanie z ustawiaczem
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);
}
I starałem się zaktualizować „coś” załączony nieruchomość wyzwalacz nieruchomości określonej w sekcji Przycisk styl:
<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>
Jednak nadal otrzymuję następujący błąd kompilacji:
błąd MC4003: Nie można rozwiązać właściwości stylu "Coś". Sprawdź, czy typem posiadania jest typ TargetType stylu, lub użyj składni Class.Property, aby określić właściwość. Linia 10 Pozycja 29.
Nie mogę zrozumieć, dlaczego daje mi ten błąd, ponieważ użyłem składni "Class.Property" w tagu sekcji. Czy ktoś może mi powiedzieć, jak mogę naprawić ten błąd kompilacji?
Miałem już w pełni statyczną dziewczynę dla mojego AttachedProperty, również z prawidłowym Get i Set. Chociaż miałem dokładnie taki sam wyjątek jak OP, można go również rozwiązać, usuwając specyfikację zestawu w przestrzeni nazw (która w moim przypadku została dodana automatycznie przez ReSharper). +1 – LuckyLikey