Pobieranie wartosci komorki z ListView

Pobieranie wartosci komorki z ListView
arti86
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bournemouth, UK
  • Postów: 63
0

Jak pobrac zawartosc komorki z ListView?
Oto moj kod XAML

Kopiuj
 
        <ListView x:Name="ordersList" Margin="0,100,0,0" BorderThickness="2" ItemsSource="{Binding Orders}">
            <ListView.View>
                <GridView AllowsColumnReorder="False" x:Name="_dataGrid">
                    <GridViewColumn Header="ID" Width="100" DisplayMemberBinding="{Binding orderId}"/>
                    <GridViewColumn Header="ext" Width="50" DisplayMemberBinding="{Binding xOrderId}" />
                    <GridViewColumn Header="Status" Width="70" DisplayMemberBinding="{Binding status}" />
                    <GridViewColumn Header="Queue" Width="100" DisplayMemberBinding="{Binding queue}" />
                    <GridViewColumn Header="Notes" Width="600"  >
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox Text="{Binding notes}" Foreground="Blue" Width="570" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn x:Name="_partsNeeded" Header="Parts Needed" Width="600" >
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox Text="{Binding partsNeeded}" Width="570" LostFocus="TextBox_LostFocus" AcceptsReturn="True"/>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>

Dodalem do jednej z kolumn x:Name ktore jest widoczne w kodzie ale nie ma metody .Text

Jakies sugestie?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
1

Pobierasz element i rzutujesz na Order

Kopiuj
Order o = listview.Item[1] as Order;

Lub jeśli chcesz pobrać tylko zaznaczony element to tworzysz propertkę

Kopiuj
public SelectedOrder {get;set;}

i bindujesz do selectedItem w listview

Kopiuj
<ListView SelectedItem="{Binding SelectedOrder}" ...

tak by było chyba najlepiej.
Ewentualnie

Kopiuj
Order selectedOrder = listview.SelectedItem as Order
arti86
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bournemouth, UK
  • Postów: 63
0

dzieki wielkie!
rozwiazalo to moj problem ale zeby nie bylo latwo mam nastepny. Jesli wchodze w pole listy ktore jest typem TextBox, nie zaznacza to rekordu i wywala blad.

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
0

Nie rozumiem, co znaczy "wchodzę"? Gdzie, co, jaki błąd? Pokaż kod najlepiej.

arti86
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bournemouth, UK
  • Postów: 63
0
Kopiuj
 
                            <DataTemplate>
                                <TextBox Text="{Binding partsNeeded}" Width="570" LostFocus="TextBox_LostFocus" AcceptsReturn="True"/>
                            </DataTemplate>

jak widzisz w kodzie, jedna kolumna jest polem TextBox. Jesli klikam na to pole zeby zmienic tekst, nie zaznacza to calej lini w ListView.
Pod LostFocus mam ustawiony kod ktory zapisuje wszystko do SQL. Dziala w 100% jesli przed tym zaznacze linie, zmienie tekst, wyjde - dziala jak nalezy
Jesli wejde "z buta" w ta kolumne i wyjde to wywala blad, bo nic nie jest zaznaczone. Nie moge nigdzie znalezc opisu co za to odpowiada

arti86
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bournemouth, UK
  • Postów: 63
0

dzieki jeszcze raz!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.