3 messaggi dal 07 novembre 2014
Buongiorno.
In una window ho creato una dependency property con il seguente codice:
public partial class MainWindow : Window
{
...
private static DependencyProperty TestProperty = DependencyProperty.Register("Test", typeof(System.Boolean),
            typeof(System.Windows.Window));
public System.Boolean Test 
{
    get { return (System.Boolean)this.GetValue(TestProperty); }
    set { this.SetValue(TestProperty, value); }
}
...
}

non capisco come la property possa essere utilizzata nella definizione di uno stile
<Window.Resources>

    <Style x:Key="TextBoxStyle1" TargetType="TextBox" >
        <Style.Triggers>
            <Trigger Property="???" Value="true">
                <Setter Property="Background" Value="Aquamarine"></Setter>
            </Trigger>
        </Style.Triggers> 
    </Style>
....

che cosa devo mettere in Trigger Property per poterla utilizzare ?
Grazie
Angelo
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Angelo,
ci sei quasi, devi solo usare un DataTrigger al posto del Trigger.
<Window.Resources>
    <Style x:Key="TextBoxStyle1" TargetType="TextBox" >
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=Test}" Value="True">
                <Setter Property="Background" Value="Aquamarine"></Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

...e poi assegni lo stile ad un TextBox.
<TextBox Style="{Binding Source={StaticResource TextBoxStyle1}}" />


Dopo questo primo test, cerca se possibile di spostare le tue dependency properties in un ViewModel - ovvero una classe POCO di cui creerai un'istanza per assegnarla al DataContext della Window.

Segui questo articolo di Cristian Civera per un'introduzione all'uso del pattern MVVM in un'applicazione WPF.
http://www.winfxitalia.com/articoli/presentation-foundation/architettura-model-view-viewmodel-wpf.aspx

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.