J'ai un contrôle WPF personnalisé avec un DependencyProperty MaChaîneWPF de liaison d'un FindAncestor à la dépendance de la propriété de contrôle personnalisé
J'utilise le contrôle dans un ItemsControl sur mon point de vue et que vous voulez pêcher une valeur hors de le ViewModel. Comme le DataContext du contrôle devient chaque élément dans ItemsSource du ItemsControl, je pensais pouvoir utiliser FindAncestor mais il semble que ça marche ... quelqu'un peut-il voir où je me trompe s'il vous plait?
Heres le XAML sur la vue ...
<Grid>
<ItemsControl ItemsSource="{Binding MyItems}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Name="myStack">
<ImportExceptions:ControlStrip MyString="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ItemsControl}}, Path=DataContext.MyStringOnViewModel}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
et Heres le code derrière mon contrôle personnalisé où je l'ai créé ma propriété de dépendance ...
public partial class ControlStrip
{
public ControlStrip()
{
InitializeComponent();
}
public string MyString
{
get
{
return GetValue(MyStringProperty).ToString();
}
set
{
SetValue(MyStringProperty, value);
}
}
public static readonly DependencyProperty MyStringProperty =
DependencyProperty.RegisterAttached("MyString", typeof (string), typeof (ControlStrip));
}
Je pensais que c'était une cravate? ;) – kiwipom
Comme vous avez suspecté j'ai trouvé la faute dans la référence DataContext. Merci de votre aide –