Stavo provando proprietà associate e trigger di stile sperando di saperne di più. Ho scritto un semplice finestre WPF app con una proprietà associata:Aggiornamento della proprietà associata personalizzata nel trigger di stile con Setter
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);
}
e stavo cercando di aggiornare il 'qualcosa' proprietà associata con un trigger proprietà definita nella sezione di stile del tasto:
<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>
Tuttavia, ho continuato a ottenere il seguente errore di compilazione:
errore MC4003: Impossibile risolvere la proprietà di stile 'Qualcosa'. Verificare che il tipo proprietario sia il TargetType dello stile o utilizzare la sintassi Class.Property per specificare la proprietà. Riga 10 Posizione 29.
Non riesco a capire perché mi dà questo errore perché ho usato la sintassi 'Class.Property' nel tag della sezione. Qualcuno può dirmi come posso risolvere questo errore di compilazione?
Avevo già una lass completamente statica per la mia AttachedProperty, anche con il Get e Set corretto. Sebbene abbia avuto esattamente la stessa eccezione dell'OP, può anche essere risolto rimuovendo le specifiche dell'assembly nello spazio dei nomi (che nel mio caso è stato aggiunto automaticamente da ReSharper). +1 – LuckyLikey