UWP ListView 不是数据

UWP ListView not data

我有一个这样定义的 ListView:

<ListView x:Name="phonesListView" 
                     Grid.Row="5"
                     Background="Black"
                     IsItemClickEnabled="True"
                     Foreground="Gray" >

                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="ListViewItem">
                                    <Grid>
                                        <Border x:Name="myback" Background="Transparent">
                                            <ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Margin="20, 0, 20, 0"/>
                                        </Border>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </ListView.ItemContainerStyle>

                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid Width="auto" HorizontalAlignment="Stretch">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>

                            <Grid 
                            Grid.Row="0">
                                <Grid.ColumnDefinitions >
                                    <ColumnDefinition Width="3*" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>

                                <ComboBox 
                                    Grid.Column="0"
                                    VerticalAlignment="Center"
                                    Background="Black"
                                    Foreground="White" >        
                                    <ComboBoxItem Content="Home" IsSelected="True"/>
                                    <ComboBoxItem Content="Work"/>
                                    <ComboBoxItem Content="Office"/>
                                    <ComboBoxItem Content="Fax"/>
                                    <ComboBoxItem Content="School"/>
                                </ComboBox>

                                <Button
                                    Grid.Column="1"
                                    Height="30"
                                    Width="30"
                                    Foreground="Black"
                                    Margin="0, 5, 0, 5"
                                    HorizontalAlignment="Center" Click="RemovePhone">   
                                    <Button.Background>
                                        <ImageBrush Stretch="Fill" ImageSource="Assets/appbar.close.png" />
                                    </Button.Background>
                                </Button>

                            </Grid>

                            <TextBox
                                Grid.Row="1"
                                Background="White"
                                Foreground="Black"
                                FontSize="18"
                                Text="{Binding Number}"
                                InputScope="TelephoneNumber" />

                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>

            </ListView>

在代码中我有属性:

ObservableCollection<Phone> phones = new ObservableCollection<Phone>();

一切正常,我可以通过任一方式在列表视图中添加和删除项目

phones.Add or phones.Remove

问题是当我离开页面或按下“保存”按钮时,此集合的计数正是它应该的,但我没有在输入字段中填写任何数据。你能帮我吗?谢谢

如果您希望 ListView 中编辑的数据流回项目以便您可以保存编辑,则必须使用 双向绑定.当控件(在您的 TextBox 下面的示例中)失去焦点时,Text 属性 的值将存储回绑定字段(在您的示例编号中)。

<TextBox
    Grid.Row="1"
    Background="White"
    Foreground="Black"
    FontSize="18"
    Text="{Binding Number, Mode=TwoWay}"
    InputScope="TelephoneNumber" />

有关绑定的更多详细信息,请阅读 MSDN article