J'ai un ListBox personnalisé avec plusieurs colonnes par un articlesélection ListBox personnalisé dans WPF
<ListBox Name="UserListBox" Loaded="GetUsers_OnLoad" SelectionChanged="UserSelected">
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel Name="UserDockPanel" Margin="4">
<TextBlock Name="UsernameTextBlock" Text="{Binding Path=Username}"/>
<CheckBox Name="OneCheckBox" IsHitTestVisible="False" IsChecked="{Binding One}" />
<CheckBox Name="TwoCheckBox" IsHitTestVisible="False" IsChecked="{Binding Two}" />
<CheckBox Name="ThreeCheckBox" IsHitTestVisible="False" IsChecked="{Binding Three}" />
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Ce que je suis en train de faire est lorsque l'utilisateur sélectionne un élément que je peux analyser les valeurs individuelles pour cet article (UsernameTextBlock, OneCheckbox, TwoCheckBox, ThreeCheckBox).
J'ai essayé sélectionné qui génère une erreur et la sélection modifiée semble fonctionner mais je ne sais pas comment récupérer les valeurs individuelles pour l'élément sélectionné.
Tout aperçu serait apprécié.
MISE À JOUR:
Voici le code derrière
private void UserSelected(object sender, RoutedEventArgs e)
{
var userListBox = FindName("UserListBox") as ListBox;
var selectedItem = userListBox.SelectedItem as ListBoxItem;
MessageBox.Show(selectedItem.Username);
}
Je suis actuellement juste montrer un popup de message pour montrer ce que j'accède
MISE À JOUR 2:
private void GetUsers_OnLoad(object sender, RoutedEventArgs e)
{
_outreachAuths = _outreachTableAdapter.GetOutreachAuths();
var users = new List<UserItem>();
foreach (DataRow row in _outreachAuths.Rows)
{
users.Add(new UserItem() { Username = row.ItemArray[0].ToString(), One = false, Two = true, Three = ((row.ItemArray[2].ToString() == "1"))});
}
var userList = sender as ListBox;
if (userList != null) userList.ItemsSource = users;
}
Pourriez-vous s'il vous plaît publier le code codebehind/ViewModel qui traite de l'événement SelectionChanged? – goobering
@goobering J'ai ajouté le code derrière – Chris
Près de là avec celui-ci. Pouvez-vous s'il vous plaît poster le code que vous utilisez pour remplir le ListBox avec des éléments? – goobering