UWP C # ListView возвращает значение идентификатора нажатой строки - PullRequest
0 голосов
/ 06 мая 2018

Я довольно новичок в программировании и создаю пользовательский интерфейс базы данных.

Что мне нужно сделать, это нажать на строку в listview и получить возврат Id.

Ниже приведен код, который у меня есть, но он получает 'Exception User-Unhandled System.ArgumentNullException: value cannot be null'.

Любая помощь будет основываться.

UWP Xaml <ListView x:Name="ListItems" IsItemClickEnabled="True" ItemClick="ListItems_ItemClick" Tag="{Binding Id}"
                             >

private void ListItems_ItemClick(object sender, ItemClickEventArgs e)
    {

        var id = (sender as ListView).Tag as string;
        {
            testbox.Text = id;
        }

Просмотр полного списка

<ListView x:Name="ListItems" IsItemClickEnabled="True" ItemClick="ListItems_ItemClick" Tag="{Binding Id}"
                             >
                        <ListView.ItemTemplate >
                            <DataTemplate >
                                <Border
                         BorderThickness="0,0,0,0">
                                    <Grid HorizontalAlignment="Stretch">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="250" />
                                            <ColumnDefinition Width="130" />
                                            <ColumnDefinition Width="150" />
                                            <ColumnDefinition Width="200" />
                                            <ColumnDefinition Width="200" />
                                            <ColumnDefinition Width="200" />
                                            <ColumnDefinition Width="auto" />
                                        </Grid.ColumnDefinitions>
                                        <Grid.Resources>
                                            <Style TargetType="TextBlock">
                                                <Setter Property="Padding" Value="8,0,0,0" />
                                            </Style>
                                        </Grid.Resources>
                                        <TextBlock
                                            Grid.Column="0"
                                            HorizontalAlignment="Stretch"
                                            Text="{Binding LegalName, Mode=OneWay}" />
                                        <TextBlock
                                            Grid.Column="1"
                                            HorizontalAlignment="Stretch"
                                            Text="{Binding PhoneNumber, Mode=OneWay}" />
                                        <TextBlock
                                            Grid.Column="2"
                                            HorizontalAlignment="Stretch"
                                            Text="{Binding EmailAddress, Mode=OneWay}" />
                                        <TextBlock
                                            Grid.Column="3"
                                            HorizontalAlignment="Stretch"
                                            Text="{Binding HomeAddress, Mode=OneWay}" />
                                        <TextBlock
                                            Grid.Column="4"
                                            HorizontalAlignment="Stretch"
                                            Text="{Binding PostalAddress, Mode=OneWay}" />
                                        <TextBlock
                                            Grid.Column="5"
                                            HorizontalAlignment="Stretch"
                                            Text="{Binding Id, Mode=OneWay}" />
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>

1 Ответ

0 голосов
/ 06 мая 2018

Вот очень легкий подход. Привязать событие TextChanged всех texbox к событию TextChanged:

XAML

 <TextBlock Grid.Column="0" TextChanged="textbox_TextChanged".../>

C #

 private string selectedText;
 private void textbox_TextChanged(object sender, EventArgs e)
 {
  selectedtext = (sender as TextBlock).Text
 }

 private void ListItems_ItemClick(object sender, ItemClickEventArgs e)
{
 ///use selectedtext string as you want
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...