Pobieranie wartosci komorki z ListView

0

Jak pobrac zawartosc komorki z ListView?
Oto moj kod XAML

 
        <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?

1

Pobierasz element i rzutujesz na Order

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

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

public SelectedOrder {get;set;}

i bindujesz do selectedItem w listview

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

tak by było chyba najlepiej.
Ewentualnie

Order selectedOrder = listview.SelectedItem as Order
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.

0

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

0
 
                            <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

0

dzieki jeszcze raz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1