Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修复listview Windows Phone 8.1 XAML中的错误 我在一个集线器中列出了一个列表并成功地管理了它,但是当我尝试创建一个样式来分离要列出的项目时,我有一个非常奇怪的bug,当我试图在列表中间滑动时,他开始抖动,只是因为我增加了一个边距,如果我正常删除了。_C#_Windows Phone 8.1 - Fatal编程技术网

C# 如何修复listview Windows Phone 8.1 XAML中的错误 我在一个集线器中列出了一个列表并成功地管理了它,但是当我尝试创建一个样式来分离要列出的项目时,我有一个非常奇怪的bug,当我试图在列表中间滑动时,他开始抖动,只是因为我增加了一个边距,如果我正常删除了。

C# 如何修复listview Windows Phone 8.1 XAML中的错误 我在一个集线器中列出了一个列表并成功地管理了它,但是当我尝试创建一个样式来分离要列出的项目时,我有一个非常奇怪的bug,当我试图在列表中间滑动时,他开始抖动,只是因为我增加了一个边距,如果我正常删除了。,c#,windows-phone-8.1,C#,Windows Phone 8.1,这是我的密码 <ListView x:Name="list" Loaded="ListView_Loaded" SelectedItem="true" SelectionChanged="searchResultsList_SelectionChanged" ItemsSource="{Binding}"> <ListView.ItemContainerStyle>

这是我的密码

<ListView x:Name="list" Loaded="ListView_Loaded" SelectedItem="true"  SelectionChanged="searchResultsList_SelectionChanged" ItemsSource="{Binding}">
                                    <ListView.ItemContainerStyle>
                                        <Style TargetType="ListViewItem">
                                            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                                            <Setter Property="Margin" Value="0,0,0,20" />
                                        </Style>
                                    </ListView.ItemContainerStyle>
                                    <ListView.ItemTemplate>
                                        <DataTemplate>
                                            <Grid>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="80" />
                                                    <ColumnDefinition Width="10" />
                                                    <ColumnDefinition Width="*" />
                                                </Grid.ColumnDefinitions>

                                                <Border Width="80" Height="80">
                                                    <Image Source="{Binding Caminho}" />
                                                </Border>

                                                <StackPanel Margin="0,16,0,0" Grid.Column="2">
                                                    <TextBlock Foreground="White" Text="{Binding NomeCurso}" TextWrapping="WrapWholeWords" FontSize="{StaticResource TextStyleExtraLargeFontSize}" />

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

所以我的bug特别出现在代码的这一部分:

<Setter Property="Margin" Value="0,0,0,20" />


如果我让它工作正常,有人知道它是什么?

奇怪的是它应该工作。但要解决您的问题,您可以在datatemplate网格中使用margin。将边距设置为listitem数据模板的主网格

   <DataTemplate>
                                        <Grid Margin="0,0,0,20">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="80" />
                                                <ColumnDefinition Width="10" />
                                                <ColumnDefinition Width="*" />
                                            </Grid.ColumnDefinitions>

                                            <Border Width="80" Height="80">
                                                <Image Source="{Binding Caminho}" />
                                            </Border>

                                            <StackPanel Margin="0,16,0,0" Grid.Column="2">
                                                <TextBlock Foreground="White" Text="{Binding NomeCurso}" TextWrapping="WrapWholeWords" FontSize="{StaticResource TextStyleExtraLargeFontSize}" />

                                            </StackPanel>
                                        </Grid>
                                    </DataTemplate>

这是WP 8.1中的一个bug,它与病毒化有关

您需要明确指定每个项目的宽度,或者使用我使用的(感谢),这是一个扩展的
列表视图
,可以解决此问题,并且边距仍然有效:

public class PerfectScrollListView : ListView
{
    public PerfectScrollListView()
    {
        this.SizeChanged += PerfectScrollListView_SizeChanged;
    }

    private void PerfectScrollListView_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        if (ItemsPanelRoot != null)
        {
            ItemsPanelRoot.Width = e.NewSize.Width;
        }
    }
}