Bei UserControl stehen nicht alle Eigenschaften zur Verfügung

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Murmeli81.

    Bei UserControl stehen nicht alle Eigenschaften zur Verfügung

    Hallo

    Ich habe ein einfaches Usercontrol für eine Combobox mit Bildern gemacht.

    XML-Quellcode

    1. <UserControl x:Class="EDM_Formeln_Hilfsprogramm.ucComboBoxNetzbetreiber"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6. xmlns:local="clr-namespace:EDM_Formeln_Hilfsprogramm"
    7. mc:Ignorable="d"
    8. d:DesignWidth="1000" d:DesignHeight="500">
    9. <ComboBox IsEditable="False" SelectedIndex="0" Margin="10" Width="230" Height="99">
    10. <ComboBoxItem>
    11. <Image Source="Bilder/Bild1.jpg" Stretch="Fill"/>
    12. </ComboBoxItem>
    13. <ComboBoxItem>
    14. <Image Source="Bilder/Bild2.jpg" Stretch="Fill" />
    15. </ComboBoxItem>
    16. <ComboBoxItem>
    17. <Image Source="Bilder/Bild3.jpg" Stretch="Fill" />
    18. </ComboBoxItem>
    19. </ComboBox>
    20. </UserControl>


    Nun habe ich das in ein weiteres UserControl integriert (ucMK3). Funktioniert tadellos.

    XML-Quellcode

    1. <UserControl x:Class="EDM_Formeln_Hilfsprogramm.ucMK3"
    2. ...
    3. <StackPanel Orientation="Horizontal" Grid.ColumnSpan="3">
    4. <local:ucComboBoxNetzbetreiber x:Name="cobEVU" Margin="30,0,70,0"/>
    5. <Image Source="Bilder/Schema_MK3.png" Stretch="Uniform" />
    6. </StackPanel>
    7. ...
    8. </<UserControl>


    Nun steht mir im dazugehörenden C#-Code (ucMK3.xaml.cs) z.B. die Eigenschaft SelectetItem nicht zur Verfügung. Was mache ich falsch?

    Gruss
    Hallo

    Das kann sie auch nicht. Wenn dann kann die Combobox ansich zur Verfügung stehen und innerhalb dieser dann die Eigenschaft. Hierfür muss die Combobox einen Namen aufweisen da du dese sonst ja nicht im CodeBahin ansprechen kannst. Wie auch - mit welchem Namen. also muss ein Name vergeben werden.

    Die bessere und korekte möglichkeit wäre allerdings sowieso die Verwendung von DependencyProperties. Siehe hier in meinem Tutorial.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Sascha

    Danke für Deine Erklärungen, und den Link. Bin mit den Videos noch nicht soweit vorgedrungen, werde dieses nun aber vorziehen.

    Das mit dem Namen für CodeBehind hatte ich gestern noch herausgefunden.
    Hatte Die Frage aber noch nicht geschlossen, da ich schon dachte, dass es eine elegantere Lösung geben wird.

    Gruss