Wie binde ich ein Control in einem Control?

  • WPF

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaHo.

    Wie binde ich ein Control in einem Control?

    XML-Quellcode

    1. <UserControl x:Class="jcPages.jcMainGrid"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    6. xmlns:jcStatusleiste="clr-namespace:jcControls"
    7. mc:Ignorable="d"
    8. d:DesignHeight="450" d:DesignWidth="800">
    9. <Grid>
    10. <Grid.RowDefinitions>
    11. <RowDefinition/>
    12. <RowDefinition Height="Auto"/>
    13. </Grid.RowDefinitions>
    14. <Border Grid.Row="1" >
    15. <jcStatusleiste:jcStatusleiste DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"/>
    16. </Border>
    17. </Grid>
    18. </UserControl>


    Macht man es anders? ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Hallo,

    ne das passt eigentlich so. Einzig den XAML Namespace würde ich abändern, hier kann es sein, dass der Designer ein wenig rumzickt, wenn der Namespace gleich wie der Controlname ist. Anhand des Assemblynmen würde ich schätzen, dass in deiner Bibiliothek mehrere Controls vorhanden sind. In diesem Fall würde ich einfach den Namespace mit ​jcControls importieren.

    Das einzige was mir auffällt, wo ich vermute, dass es nicht so gewollt ist, ist das Binding. Ich nehme an, du willst den DataContext des Controls an den des UserControls binden und nicht an das Control selbst - das ist aber nur eine Vermutung.

    Wenn ja dann am besten so:

    XML-Quellcode

    1. <jcStatusleiste:jcStatusleiste DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"/>​


    So ich hoffe ich konnte helfen.....
    ----

    WebApps mit C#: Blazor