Wpf binding

d0jones Messages postés 10 Date d'inscription vendredi 29 décembre 2000 Statut Membre Dernière intervention 15 janvier 2013 - 15 janv. 2013 à 16:15
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 - 16 janv. 2013 à 10:09
Bonjour,
j'ai un datagrid qui comme source de données une dataview ("ExcelData")
<DataGrid ItemsSource="{Binding Path=ExcelData}" ColumnHeaderStyle="{DynamicResource ColumnHeaderStyle}" Grid.Row="1" Margin="0 10 0 10" Visibility="{Binding DisplayGridView, Converter={StaticResource booltovisibility}}" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" />


Ce DataGrid a un style personnalisé pour son header. Chaque header est composé d'une combobox et d'un label.
<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="VerticalContentAlignment" Value="Center" />
            <Setter Property="Background" Value="{x:Static pm:MetroColors.FeatureBrush}" />
            <Setter Property="Foreground" Value="White" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="DataGridColumnHeader">
                        
                            <StackPanel>
                                <ComboBox ItemsSource="{Binding ComboDataSource}"  DisplayMemberPath="Text" SelectedValuePath="Name"   SelectionChanged="ComboBox_SelectionChanged" ext:ComboBoxExtensions.ComboBoxName="{TemplateBinding Content}" />
                                <Label Content="{TemplateBinding  Content}" />
                            </StackPanel>
                        
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>



Le problème est que les combo sont vide alors que la propriété est renseignée.

Apparament il recherche une propriété nommée "ComboDataSource" dans le contexte du datagrid!

Pour info, le datagrid se remplit correctement !
j'ai cette erreur sur la console :
System.Windows.Data Error: 40 : BindingExpression path error: 'ComboDataSource' property not found on 'object' ''String' (HashCode=-1599635831)'. BindingExpression:Path=ComboDataSource; DataItem='String' (HashCode=-1599635831); target element is 'ComboBox' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')


Avez vous des idées afin de contourner ce problème?

1 réponse

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
16 janv. 2013 à 10:09
Bonjour,
je pense qu'il faut ajouter des paramètres au binding

{Binding Path=ComboDataSource,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}

Bon codage.
Je te recmmande le site WPF tutorial
louis
0
Rejoignez-nous