Dans mon projet Silverlight 3, j'utilise un contrôle ListBox pour afficher les résultats d'une opération Get() à partir d'un WebService WCF.Modifier l'article d'un ListBox à partir d'un bouton dans son modèle?
modèle d'élément de la zone de liste est la suivante:
<ListBox x:Name="m_listview" ItemsSource="{Binding Users, Mode=TwoWay, UpdateSourceTrigger=Default}" Foreground="{StaticResource EnergyBlue}" Background="{StaticResource EnergyBackground}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Center" Grid.ColumnSpan="3" Margin="0,0,0,2" IsSynchronizedWithCurrentItem="False">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid MinWidth="536" MinHeight="10" d:DesignWidth="19.875" d:DesignHeight="20.75">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions>
<TextBox Text="{Binding Path=UserName, Mode=TwoWay, UpdateSourceTrigger=Default}" Grid.Column="0" Foreground="{StaticResource EnergyWhite}" Margin="2" Background="{StaticResource EnergyBackground}" BorderBrush="{StaticResource EnergyBlue}" SelectionBackground="{StaticResource EnergyBlue}" SelectionForeground="{StaticResource EnergyWhite}" MinWidth="100"/>
<PasswordBox Password="{Binding Path=UserPass, Mode=TwoWay, UpdateSourceTrigger=Default}" Grid.Column="1" Foreground="{StaticResource EnergyWhite}" Margin="2" Background="{StaticResource EnergyBackground}" BorderBrush="{StaticResource EnergyBlue}" SelectionBackground="{StaticResource EnergyBlue}" SelectionForeground="{StaticResource EnergyWhite}" MinWidth="100"/>
<TextBox Text="{Binding Path=UserTypeId, Mode=TwoWay, UpdateSourceTrigger=Default}" Grid.Column="2" Foreground="{StaticResource EnergyWhite}" Margin="2" Background="{StaticResource EnergyBackground}" BorderBrush="{StaticResource EnergyBlue}" SelectionBackground="{StaticResource EnergyBlue}" SelectionForeground="{StaticResource EnergyWhite}" MinWidth="100"/>
<Button Style="{StaticResource EnergyGlassButton}" Grid.Column="3" MinWidth="10" MinHeight="10" Content="Update" Click="OnUpdateUser"/>
<Button Style="{StaticResource EnergyGlassButton}" Grid.Column="4" MinWidth="10" MinHeight="10" Content="Remove" Click="OnRemoveUser"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Le modèle contient 2 boutons. Lorsque je clique sur l'un d'entre eux, je voudrais obtenir une référence à l'élément de données exact sous le listboxitem. Comment je fais ça? J'ai essayé:
User target_user = m_listview.SelectedItem as User;
, mais il est apparu que l'élément listview n'a pas été sélectionné. Peut-il être fait sans réellement sélectionner l'élément listview? Par exemple, il suffit de cliquer sur le bouton "Supprimer" et faire disparaître la ligne?
Meilleures salutations
en effet. a fonctionné comme un charme – Maciek
Question rapide qui est apparue dans ma tête: Et si cette ListBox aurait été un élément d'un ModelView, et le bouton serait attaché à une commande ICommand? Comment cela devrait-il fonctionner alors? – Maciek