2012-07-18 15 views
8

Ho creato un usercontrol, che ha 2 proprietà di dipendenza. Voglio associare quelle proprietà di dipendenza alla proprietà del mainViewModel, in modo che ogni volta che qualcosa viene modificato nel controllo dell'utente la proprietà del genitore venga aggiornata.WPF associa la proprietà di usercontrol alla proprietà del genitore

Ho provato, legandolo normalmente ma non ha funzionato. Come posso associare il DP del controllo dell'utente alla proprietà del genitore.

ho provato questo: UC:

<TextBox Name="TextBox" Text="{Binding ElementName=UCName, Path=DP1, Mode=TwoWay}"/> 

MainWindow:

<UCName:UCName Width="330" CredentialName="{Binding Path=DP1, Mode=TwoWay}"></UCName:UCName> 

Grazie

+0

Potrebbe fornire alcuni esempi di codice, incluso il modo in cui si sta vincolando alle proprietà di dipendenza. – Nathan

+0

Appena modificato il post originale – Ali

risposta

18

per il legame con le proprietà del genitore si dovrebbe usare RelativeSource nella vostra Binding. Come questo:

<TextBox Name="TextBox" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UCName:UCName}}, Path=DP1, Mode=TwoWay}"/> 

Dettagli: https://msdn.microsoft.com/en-us/library/ms743599(v=vs.100).aspx

ps: Non dimenticare di definire namespace UCName.

[EDIT] Modificato URL nella versione 4 di documentazione di .NET.

+0

Il tuo link è diventato obsoleto. –

5

Qualcosa di simile a questo:

<MainWindow DataContext="mainViewModel"> 

<local:TestControl ucDependProp="{Binding viewModelProp}/> 

</MainWindow> 


className: TestControl.xaml 
<UserControl Name="thisControl"> 
<TextBox Text="{Binding ElementName=thisControl, Path=ucDependProp}/> 
</UserControl> 

Il controllo utente non dovrebbe essere a conoscenza del modello di vista padre.

Problemi correlati