Domanda

Sto creando una casella di riepilogo selezionata con il seguente modello:

<Style x:Key="CheckBoxListStyle" TargetType="{x:Type ListBox}">
            <Setter Property="SelectionMode" Value="Multiple"></Setter>
            <Setter Property="ItemContainerStyle">
                <Setter.Value>
                    <Style TargetType="{x:Type ListBoxItem}" >
                        <Setter Property="Margin" Value="2" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type ListBoxItem}">
                                    <CheckBox IsChecked="{Binding Path=xxxxxxxxxxx,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}">                                                                             <ContentPresenter></ContentPresenter>
                                    </CheckBox>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
        </Style>

 <ListBox Style="{StaticResource CheckBoxListStyle}" ItemsSource="{Binding Path=Configuration.ProductTypes}" DisplayMemberPath="ProductName" />  

il mio problema è che sto ricevendo tutti i tipi di prodotto dal database e lo sto collegando alla fonte di voci della casella di riepilogo. ho una classe di prodotti che contiene un elenco di tipi di prodotti a cui appartiene. devo impostare la proprietà IsChecked delle caselle di controllo in base all'elenco dei tipi di prodotto del prodotto. In genere ho bisogno di impostare una o più caselle di controllo proprietà IsChecked. il prodotto può appartenere a 1 o più tipi di prodotto. e la modalità di selezione è multi-selezione. se l'utente seleziona le caselle di controllo del tipo di prodotto aggiuntivo .. devo ottenere le caselle di riepilogo selezionate e salvarle nel database ... questa è un'applicazione WVF MVVM ... qualsiasi idea su come risolvere questo scenario ... < br> nella controltemplate quale sarà il percorso IsChecked?

Grazie Rey

Vorrei semplicemente chiarire la mia domanda: ho bisogno di una casella di riepilogo con casella di controllo e blocco di testo. il contesto dei dati di textblock è diverso e il contesto dei dati della casella di controllo è diverso. Voglio dire, ottengono i loro dati da diversi oggetti. non ho idea di come raggiungere questo obiettivo ...

È stato utile?

Soluzione

  

Vorrei semplicemente chiarire la mia domanda: ho bisogno di un   casella di riepilogo con casella di controllo e blocco testo.   Il contesto dei dati del blocco di testo è diverso   e il contesto dei dati della casella di controllo è   diverso. intendo che ottengono i loro dati   da diversi oggetti. non ho idea di come   raggiungere questo ...

Crea una nuova classe (un ViewModel) che contiene i due contesti di dati (Model1 e Model2) e i dati si legano ad esso, noto anche come modello MVVM.

Altri suggerimenti

La classe ProductType che stai vincolando a ListBox dovrebbe avere una proprietà di lettura / scrittura chiamata IsSelected o IsChecked a cui puoi associarti. Quindi invece di utilizzare un ControlTemplate, utilizzare un DataTemplate su ListBox.ItemTemplate e associare la proprietà IsChecked di CheckBox a quella proprietà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top