187 messaggi dal 09 novembre 2005
WPF FW4.0 EF6 MVVM (Ultima versione di Telerik)
Ho creato uno user control, vorrei creare un controllo che abbia incapsulata tutta la logica per un modello predefinito.
Quindi ho creato lo user control con la mia ComboBox, il ViewModel con la logica per recuperare la collection.
Nel codice dello usercontrol ho creato questa dependency-property

public NazioneModel Value
{
  get
  {
    return (NazioneModel) GetValue(ValueProperty);
  }
  set
  {
    SetValue(ValueProperty, value);
  }
}

// Using a DependencyProperty as the backing store for Value.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty ValueProperty =
  DependencyProperty.Register("Value", typeof(NazioneModel), typeof(NazioniComboBoxUserControl), new PropertyMetadata(null));


Il viewmodel del controllo lo carico in XAML come risorsa statica
<UserControl.Resources>
        <local:NazioniViewModel x:Key="vm"/>
        <Style x:Key="FieldBaseComboBoxStyle" TargetType="telerik:RadComboBox" BasedOn="{StaticResource RadComboBoxStyle}">
            <Setter Property="Margin" Value="5"/>
            <Setter Property="ClearSelectionButtonVisibility" Value="Visible"/>
            <Setter Property="ClearSelectionButtonContent" Value="Cancel selection"/>
            <Setter Property="TextSearchMode" Value="StartsWith"/>
            <Setter Property="EmptyText" Value="Select item"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="Width" Value="200"/>
        </Style>
    </UserControl.Resources>
    <Grid DataContext="{StaticResource vm}">
        <telerik:RadComboBox ItemsSource="{Binding Items}" 
                             SelectedItem="{Binding Path=Value, ElementName=userControl, Mode=TwoWay}"
                             DisplayMemberPath="Codice"
                             Style="{StaticResource FieldBaseComboBoxStyle}"/>
    </Grid>


Il customcontrol lo uso in una view che passa alla mia dependency-property Value la NazioneModel corrente. Immsginiamo che la view è la scheda anagrafica di un cliente, quindi nel viewmodel della mia scheda anagrafica la proprietà chiamata SelectedCountry di tipo NazioneModel è già valorizzata (ma ovviamente non è un'istanza della collezione della combobox....)

Problema:
Quando avvio la view che contiene il mio customcontrol, mi mostra sempre il valore di default della dp Value, anziché il valore del mio cliente.
Se seleziono un nuovo valore dalla combobox, allora SelectedCountry viene correttamente aggiornata:

Qualcuno mi può aiutare a capire dove sbaglio? O cosa mi manca da definire?

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.