J'ai un UserControl ...Reliure à UserControl dans WPF
XAML:
<UserControl x:Name="ClientsListControl" ....... >
<Grid>
<ListBox Margin="10" DisplayMemberPath="Name"
Name="profilesListBox"
ItemsSource="{Binding ElementName=ClientsListControl, Path=Items}" />
</Grid>
</UserControl>
code derrière:
public partial class ClientsList : UserControl
{
public static DependencyProperty ItemsProperty =
DependencyProperty.Register("Items", typeof(ClientsListViewModel), typeof(ClientsList));
public ClientsListViewModel Items
{
get
{
return (ClientsListViewModel) GetValue(ItemsProperty);
}
set
{
SetValue(ItemsProperty, value);
}
}
public ListBox ListBox
{
get
{
return profilesListBox;
}
}
public ClientViewModel SelectedItem
{
get
{
return (ClientViewModel) profilesListBox.SelectedItem;
}
}
public ClientsList()
{
InitializeComponent();
}
}
... et la fenêtre.
Le problème est:
1) ceci ne fonctionne:
<cm:ClientsList x:Name="clientsList" Items="{Binding}" />
<TextBox Width="100" Height="20" Name="Bla" Text="{Binding ElementName=clientsList, Path=ListBox.SelectedItem.Name}" />
2) cela ne fonctionne pas:
<cm:ClientsList x:Name="clientsList" Items="{Binding}" />
<TextBox Width="100" Height="20" Name="Bla" Text="{Binding ElementName=clientsList, Path=SelectedItem.Name}" />
Je ne comprends pas votre problème. Puisque SelectedItem est une propriété de ListBox, le premier code est valide à 100%. Puisque vous avez trouvé une solution à votre problème initial, qu'est-ce qui ne va pas avec le code non? 1 pour que vous préférez non. 2 dessus? – Andreas
le premier code fonctionne correctement. la seconde ne provoque aucune réaction sur l'interface utilisateur –