J'ai un ListView dans un Windows Form auquel je lie une liste d'objets à la création du formulaire. Ce que je voudrais faire est sur une boucle de clic de bouton par les articles qui ont été créés et change leur propriété IsEnabled à faux. J'ai essayé deux méthodes et aucune d'elles n'a été particulièrement réussie. Quelqu'un peut-il aider à résoudre ces problèmes et/ou suggérer une autre méthode?Mise en boucle via WPF Articles ListView DateTemplate
Mon ListView XAML
<ListView Margin="6" Name="myListView" ItemsSource="{Binding Path=.}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="350"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<TextBlock Name="ItemNameTextBlock" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="4" VerticalAlignment="Center" Text="{Binding Path=ItemName}" />
<CheckBox Name="Action1CheckBox" Grid.Row="1" Grid.Column="1" Content="Action1" IsChecked="True" />
<CheckBox Name="Action2CheckBox" Grid.Row="1" Grid.Column="3" Content="Action2" IsChecked="True" />
<TextBox Height="23" Name="MyInputTextBox" Grid.Row="2" Grid.Column="1" Margin="2,0,2,0" VerticalAlignment="Top" Width="25" Text="{Binding Path=DataValue}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Objectif: Sur pression du bouton (d'un bouton sans lien) désactiver les cases à cocher et la zone de texte
Tentative 1: Cela ne fonctionne pas, les articles sont les databound articles et je ne peux pas trouver un moyen d'arriver aux contrôles eux-mêmes pour faire quelque chose comme ça. Est-ce seulement possible?
foreach (var item in ReleaseDeployProcessListView.Items)
{
((CheckBox)item.FindControl("Action1CheckBox")).IsEnabled = false;
}
Tentative 2: J'ai ajouté une propriété publique « IsFormElementsEnabled » à la forme et sur le bouton, cliquez définir cette valeur à false. Mais je ne pouvais pas comprendre comment/si/ce que je devais faire pour lier cela aux éléments. J'ai essayé IsEnabled = "{Binding Path = IsFormElementsEnabled} (qui ne fonctionne pas car il est lié aux objets et qui n'est pas partie de ces obects) et j'ai essayé IsEnabled =" {Binding Path = this.IsFormElementsEnabled} (qui doesn ne semble pas fonctionner non plus)
Oui, cela serait certainement travailler, je j'espérais vraiment pu obtenir l'un des deux autres mécanismes pour travailler cependant. – ChrisHDog
Voir ma nouvelle réponse;) Bien que je préfère encore cette méthode si :) – Arcturus