Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ItemTemplateSelector SelectedTemplate wird nicht mehr ausgelöst
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

ItemTemplateSelector SelectedTemplate wird nicht mehr ausgelöst

beantworten | zitieren | melden

Hallo zusammen,

ich nutze zur Zeit eine FilteralbeComboBox den ich hier gefunden habe :

https://stackoverflow.com/questions/2001842/dynamic-filter-of-wpf-combobox-based-on-text-input/55190176#55190176

Die Lösung die dort angeboten wird funktioniert soweit auch einwandfrei.

Nur nutze ich bei einigen ComboBoxen die ich dadurch jetzt ersetzen möchte einen ItemTemplateSelector, der funktionierte bisher auch super. Ich denke mal das in der Klasse irgendwas überschrieben wird was dort in Konflikt kommt, jedenfalls wird nach der Auswahl das SelectedTemplate nicht mehr ausgelöst.

Hab mich jetzt schon eine Weile mit auseinandergesetzt, aber ich seh es einfach nicht, eventuell kann mir ja jemand weiterhelfen.
                            <Filterable:FilterableComboBox  Grid.Column="2"
                                                                HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
                                                                    ItemsSource="{Binding ComboBoxWithdrawalSystemChargeItemsSource, UpdateSourceTrigger=PropertyChanged}"
                                                                        ItemTemplateSelector="{DynamicResource ItemTemplateSelector}"
                                                                            SelectedItem="{Binding ComboBoxWithdrawalSystemChargeSelectedItem, UpdateSourceTrigger=PropertyChanged}"
                                                                                Text="{Binding ComboBoxWithdrawalSystemChargeText, UpdateSourceTrigger=PropertyChanged}"
                                                            Style="{StaticResource BaseComboBox}">

                                <Filterable:FilterableComboBox.ItemContainerStyle>

                                    <Style TargetType="{x:Type ComboBoxItem}">

                                        <Setter Property="HorizontalContentAlignment"   Value="Center"/>

                                        <Setter Property="VerticalContentAlignment"     Value="Center"/>

                                    </Style>

                                </Filterable:FilterableComboBox.ItemContainerStyle>
                                
                                <Filterable:FilterableComboBox.Resources>
                                    
                                    <DataTemplate x:Key="SelectedTemplate">

                                        <TextBlock Text="{Binding Path=NumberOfCharge}"/>

                                    </DataTemplate>

                                    <DataTemplate x:Key="DropDownTemplate">

                                        <TextBlock Text="{Binding Path=DisplayMemberPath}"/>

                                    </DataTemplate>
                                    
                                    

                                    <ItemTemplateSelector:ComboBoxItemTemplateSelector x:Key="ItemTemplateSelector"
                                                                                            SelectedTemplate="{StaticResource SelectedTemplate}"
                                                                                            DropDownTemplate="{StaticResource DropDownTemplate}"/>
                                    
                                </Filterable:FilterableComboBox.Resources>

                        </Filterable:FilterableComboBox>

Grüße
private Nachricht | Beiträge des Benutzers
KroaX
myCSharp.de - Member

Avatar #avatar-4080.jpg


Dabei seit:
Beiträge: 301
Herkunft: Köln

beantworten | zitieren | melden

Erzeug den TemplateSelector doch mal etwas weiter oben in den Ressourcen des Parents und mach aus dem DynamicResource Verweis eine StaticResource.
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

Probier ich gleich mal aus, kann mir aber nicht vorstellen das es daran liegt. Das DropDownTemplate erkennt er ja und das wird auch ausgelöst, das SelectedTemplate wird allerdings nur einmal am Anfang wo es null ist ausgelöst, danach wenn man den Wert wechselt nicht, ich denke das es irgendwas mit dem SelectionChanged zu tun hat, weil dort ja einige Funktionen überschrieben werden. Und bei einer normalen ComboBox funktioniert der Aufruf ja auch, aber ich probiere es mal aus :)

Edit : unverändert
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von _Cashisclay am .
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

Hier mal ein Bild zum ansehen. Im Dropdown greift es, nach der Selection nicht mehr.
(Wie gesagt bei der normalen ComboBox funktioniert es)
Attachments
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

Okay es liegt am IsEditable = true, so viel hab ich schon mal herausgefunden.

Edit : Okay, ich habs. Irgendwie beißt sich das mit dem ItemTemplateSelector und dem IsEditable, wenn man aber zusätzlich noch den TextSearch.TextPath mit angibt funktioniert es wieder.

Mich würde zwar interessieren wie das alles zusammenhängt, aber bin erstmal froh das es funktioniert.

Auch wenn es sich falsch anfühlt

Grüße

                            <Filterable:FilterableComboBox  Grid.Column="2"
                                                                HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
                                                                    ItemsSource="{Binding ComboBoxWithdrawalSystemChargeItemsSource, UpdateSourceTrigger=PropertyChanged}"
                                                                        ItemTemplateSelector="{DynamicResource ItemTemplateSelector}"
                                                                            SelectedItem="{Binding ComboBoxWithdrawalSystemChargeSelectedItem, UpdateSourceTrigger=PropertyChanged}"
                                                                                TextSearch.TextPath="NumberOfCharge"
                                                            Style="{StaticResource BaseComboBox}">

                                <Filterable:FilterableComboBox.ItemContainerStyle>

                                    <Style TargetType="{x:Type ComboBoxItem}">

                                        <Setter Property="HorizontalContentAlignment"   Value="Center"/>

                                        <Setter Property="VerticalContentAlignment"     Value="Center"/>

                                    </Style>

                                </Filterable:FilterableComboBox.ItemContainerStyle>
                                
                                <Filterable:FilterableComboBox.Resources>
                                    
                                    <DataTemplate x:Key="SelectedTemplate">

                                        <TextBlock Text="{Binding Path=NumberOfCharge}"/>

                                    </DataTemplate>

                                    <DataTemplate x:Key="DropDownTemplate">

                                        <TextBlock Text="{Binding Path=DisplayMemberPath}"/>

                                    </DataTemplate>
                                    
                                    

                                    <ItemTemplateSelector:ComboBoxItemTemplateSelector x:Key="ItemTemplateSelector"
                                                                                            SelectedTemplate="{StaticResource SelectedTemplate}"
                                                                                            DropDownTemplate="{StaticResource DropDownTemplate}"/>
                                    
                                </Filterable:FilterableComboBox.Resources>

                        </Filterable:FilterableComboBox>
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von _Cashisclay am .
private Nachricht | Beiträge des Benutzers