Hallo Leute,
ich bin hier gerade etwas am verzweifeln. Ich habe ein DataTemplate in den Resourcen eines Usercontrols definiert:
Im Dictionary sind noch ein weiteres Template und einige andere "Sachen" die sollten aber damit nix zu tun haben.
Im Kopf des Usercontrols ist der DataContext wie folgt hinterlegt:
Die Gesamtview bindet auch korrekt nur das DataTemplate findet im FindAncestor Mode das Usercontrol nicht.
Ich habe versucht bis ins Ancestorlevel 13 zu gehen, ich habe Templated Parent versucht, ich habe versucht im Binding das Path= wegzulassen und in meiner Verzweiflung auch über Elementname.
Die Properties sind im Viewmodel sauber definiert und binden korrekt.
In den XAML Binding Failures wird angezeigt:
Cannot find source: RelativeSource FindAncestor, AncestorType='View.ItemsUcl'
Hat jemand eine Idee wie ich dem Template erklären kann wo es den Datacontext vom View finden soll? Danke
ich bin hier gerade etwas am verzweifeln. Ich habe ein DataTemplate in den Resourcen eines Usercontrols definiert:
XML-Quellcode
-
- <UserControl.Resources>
- <ResourceDictionary>
- <DataTemplate x:Key="PageFooterTemplate">
- <Grid>
- <TextBlock HorizontalAlignment="Left" FontSize="10" Text="{Binding Source={x:Static system:DateTime.Now}, StringFormat=d, ConverterCulture=de-AT}"/>
- <TextBlock HorizontalAlignment="Center" FontSize="10" Text="Provided by MySalesTool"/>
- <StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
- <TextBlock Margin="0,0,10,0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="10" Text="{lex:Loc Key=offer_page}"/>
- <TextBlock Margin="0,0,0,0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="10">
- <TextBlock.Text>
- <Binding Path="PageIndex" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type syncfusion:PrintPageControl}}"/>
- </TextBlock.Text>
- </TextBlock>
- <TextBlock Text="{lex:Loc Key=of}" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="10"/>
- <TextBlock Margin="0,0,0,0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="10">
- <TextBlock.Text>
- <Binding Path="TotalPages" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type syncfusion:PrintPageControl}}"/>
- </TextBlock.Text>
- </TextBlock>
- </StackPanel>
- </Grid>
- </DataTemplate>
- <DataTemplate x:Key="PageHeaderTemplate">
- <Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:ItemsUcl}}, Path=DataContext}">
- <!--<TextBlock Text="{lex:Loc Key=items}" FontSize="18" HorizontalAlignment="Left"/>-->
- <TextBlock Width="120" Text="{Binding Path=DataContext.HeaderText, Mode=OneWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:ItemsUcl}}}" FontSize="18" HorizontalAlignment="Left"/>
- <Image x:Name="TenantImage" HorizontalAlignment="Right" Stretch="Fill" Width="250" Height="150" Source="{Binding Path=DataContext.TenantLogo, Mode=OneWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:ItemsUcl}}}"/>
- </Grid>
- </DataTemplate>
- </ResourceDictionary>
- </UserControl.Resources>
Im Dictionary sind noch ein weiteres Template und einige andere "Sachen" die sollten aber damit nix zu tun haben.
Im Kopf des Usercontrols ist der DataContext wie folgt hinterlegt:
XML-Quellcode
-
- <UserControl x:Class="ItemsUcl"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:Fluent="clr-namespace:Fluent;assembly=Fluent"
- xmlns:FluentHelper="clr-namespace:View.RibbonHelper"
- FluentHelper:FluentRibbonHelper.RibbonTabGroup="{DynamicResource ribboncontextgroup}"
- FluentHelper:FluentRibbonHelper.RibbonTabDataContext="{Binding}"
- FluentHelper:FluentRibbonHelper.RibbonTab="{DynamicResource ribboncontextual}"
- xmlns:lex="http://wpflocalizeextension.codeplex.com"
- xmlns:VM="clr-namespace:ViewModel.ViewModels;assembly=ViewModel"
- xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
- xmlns:syncGrid="clr-namespace:Syncfusion.UI.Xaml.Grid;assembly=Syncfusion.SfGrid.WPF"
- xmlns:i1="http://schemas.microsoft.com/xaml/behaviors"
- xmlns:system="clr-namespace:System;assembly=mscorlib"
- xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
- xmlns:interactivity="http://schemas.microsoft.com/xaml/behaviors"
- lex:LocalizeDictionary.DesignCulture="en"
- lex:ResxLocalizationProvider.DefaultAssembly="View"
- lex:ResxLocalizationProvider.DefaultDictionary="Strings"
- mc:Ignorable="d" d:DesignWidth="600" d:DesignHeight="600"
- xmlns:local="clr-namespace:View"
- d:DataContext="{d:DesignInstance IsDesignTimeCreatable=false,Type={x:Type VM:ItemsVM}}">
Die Gesamtview bindet auch korrekt nur das DataTemplate findet im FindAncestor Mode das Usercontrol nicht.
Ich habe versucht bis ins Ancestorlevel 13 zu gehen, ich habe Templated Parent versucht, ich habe versucht im Binding das Path= wegzulassen und in meiner Verzweiflung auch über Elementname.
Die Properties sind im Viewmodel sauber definiert und binden korrekt.
In den XAML Binding Failures wird angezeigt:
Cannot find source: RelativeSource FindAncestor, AncestorType='View.ItemsUcl'
Hat jemand eine Idee wie ich dem Template erklären kann wo es den Datacontext vom View finden soll? Danke
mfG.
Stephan
Stephan