Zugang ListBoxItem-Controls in WPF-ListBox
In der WPF-Anwendung die ich erstellen Listbox mit ItemTemplate definiert, die im folgenden in der XAML-DataTemplate:
<DataTemplate x:Key="ListItemTemplate">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel>
<Button/>
<Button/>
<Button Name="btnRefresh" IsEnabled="false"/>
<TextBlock/>
<TextBlock/>
<TextBlock/>
<TextBlock/>
</StackPanel>
<TextBox/>
</Grid>
</DataTemplate>
Einmal ListBox generiert, die ich ändern müssen folgenden button IsEnabled propety zu true für alle ListBoxItem(s): <Button Name="btnRefresh" IsEnabled="false"/>
PROBLEM:
Ich kann Nicht auf ListBoxItem(s) und daher keinen Zugriff auf Ihre Kinder mit dieser Taste zwischen Ihnen.
Ist es in WPF alles wie ListBox.Nachkommen (), die in Silverlight oder andere Weise zu bekommen, um diese Schaltfläche,
- wie sind Sie Sie binden die ItemsSource der ListBox?
- Ich zuweisen Objekt-Instanz zu ItemSource programically und als Text="{Binding Name}" auf jeder Kontrolle
- Ich bin immer noch nicht ganz verstehen, Ihre Frage, haben Sie versucht, die Bindung IsEnabled="{Binding IsObjectEnabled}" und fügte hinzu, dass accessor auf das Objekt, das Sie füllen das Listenfeld mit?
InformationsquelleAutor idelix | 2012-06-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der bevorzugte Weg, dies zu tun ist durch die änderung einer Eigenschaft in der
ViewModel
gebunden, die Taste IsEnabled-Eigenschaft. Fügen Sie einen Ereignishandler, um dieListBox.Loaded
Ereignis und legen Sie diese Eigenschaft im ViewModel auf false, wenn die ListBox geladen wird.Die andere option, wenn Sie brauchen, um die traverse durch die einzelnen Daten Vorlagen-Element in der ListBox dann tun Sie das folgende:
Wenn alles, was Sie brauchen, ist die Aktivierung der Schaltfläche in der ListBoxItem, es ist ein XAML-Lösung. Verwenden DataTemplate.Trigger:
In dieser Weise immer ein ListBoxItem ausgewählt ist, die Taste auf das Element aktiviert werden. Keine c# - code benötigt wird. Einfach und sauber.
Mehr details können an gefunden werden : http://wpftutorial.net/DataTemplates.html