Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

WPF C# pobranie/aktualizacja wartości z wybranej kolumny ListView



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, …
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Grzegorz123



Dołączył: 27 Cze 2017
Posty: 171

PostWysłany: Wto Sty 08, 2019 1:09 pm  OP    Temat postu: WPF C# pobranie/aktualizacja wartości z wybranej kolumny ListView Odpowiedz z cytatem Pisownia

W XAML mam zdefiniowaną ListView:
Kod:

       <ListView x:Name="LabelsListBox" HorizontalAlignment="Left" Height="365" Margin="8,183,0,0" VerticalAlignment="Top" Width="309" BorderBrush="LightGray" BorderThickness="1" SelectionChanged="LabelslistBox_SelectionChanged" RenderTransformOrigin="-3.656,0.677">
            <ListView.ItemContainerStyle>
                <Style TargetType="ListViewItem">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
                    <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>
                </Style>
            </ListView.ItemContainerStyle>
            <ListView.View>
                <GridView>
                    <GridViewColumn Width="236" >
                        <GridViewColumn.Header>
                            <GridViewColumnHeader Content="Label" HorizontalContentAlignment="Left"/>
                        </GridViewColumn.Header>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding LabelName}" HorizontalAlignment="Left"></TextBlock>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Width="45">
                        <GridViewColumn.Header>
                            <GridViewColumnHeader Content="Pcs" HorizontalContentAlignment="Right"/>
                        </GridViewColumn.Header>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Quantity}" HorizontalAlignment="Right"></TextBlock>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>


Wszystko ładnie wygląda, pasuje, tak jak chciałem. Dodaję element tak:
Kod:

public class MyItem
    {
        public string LabelName { get; set; }
        public string Quantity { get; set; }
    }

labelsListBox.Items.Add(new MyItem { LabelName = "Jakas nazwa" , Quantity = "10" } );


Elementy się dodają. I teraz problem:
- chciałbym pobrać wartość wybranej kolumny do zmiennej - np. ustawiam się na jakimś elemencie i chcę z niego pobrać Quantity albo LabelName
- chciałbym aktualizować wartość wybranej kolumny

Przeanalizowałem dziesiątki przykładów z sieci, zrobiłem wiele prób - niestety bez powodzenia. Nie rozumiem do końca rzutowania i "zakapućkałem" się w tym. Może ktoś podpowie jak to należy robić ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Grzegorz123



Dołączył: 27 Cze 2017
Posty: 171

PostWysłany: Wto Sty 08, 2019 9:11 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Znalazłem rozwiązanie jak odczytać kolumnę:

Kod:
var selectedItem = (dynamic)LabelsListBox.SelectedItems[0];
Template_filename.Text = selectedItem.LabelName;



Teraz została tylko aktualizacja wybranej kolumny... jeszcze nie wiem jak ale podzielę się rozwiązaniem jeśli go znajdę.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Grzegorz123



Dołączył: 27 Cze 2017
Posty: 171

PostWysłany: Wto Sty 08, 2019 9:48 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Udało się ! Aktualizacja wybranej kolumny:

Kod:
var selectedItem = (dynamic)labelsListBox.SelectedItems[0];
selectedItem.LabelName = NewName;
labelsListBox.Items.Refresh();


Wszystko należy analizować w kontekście zdefiniowanej listy i klasy MyItem.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, … Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.10423 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |