gpt4 book ai didi

wpf - 如何在 XAML 中手动将 ListViewItem 添加到 WPF 多列 ListView(无绑定(bind))

转载 作者:行者123 更新时间:2023-12-04 10:54:44 25 4
gpt4 key购买 nike

我在 Expression Blend 中的 ListView 设计存在问题,这比我想象的要难。

我只想使用 XAML 绘制一个屏幕。这将不会在应用程序中运行,它只是一个静态设计研究,应仅在 Expression Blend 的设计窗口中呈现以供查看。

到目前为止我有这个:

<ListView x:Name="examList" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Date" Width="Auto"/>
<GridViewColumn Header="Setup" Width="Auto"/>
<GridViewColumn Header="Protocol" Width="Auto" />
<GridViewColumn Header="Channels" Width="Auto"/>
<GridViewColumn Header="Duration" Width="Auto"/>
</GridView>
</ListView.View>

<ListViewItem>
<TextBlock Text="stuff" /> <!-- what should I put here??? -->
</ListViewItem>
</ListView>

问题是:我不知道如何为每个字段(GridView 中的每一列)创建一个字符串或数字值的 ListViewItems。

我将不胜感激任何帮助,无论是否有代码隐藏,但我的工作流程的一个必要要求是它在 Expression Blend 中的设计时呈现,而无需运行应用程序,并且最好不要从另一个文件绑定(bind)数据,但直接手动输入 XAML(我不介意,实际上我想要它)。

我找到了 this answer ,但我认为它不能满足我的需求。

谢谢阅读!

最佳答案

您可以在 ListViewItem 中使用字符串数组。并使用 DisplayMemberBinding指定哪个索引应该显示在哪个列中。

<ListView x:Name="examList" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Date" Width="Auto"
DisplayMemberBinding="{Binding [0]}"/>
<GridViewColumn Header="Setup" Width="Auto"
DisplayMemberBinding="{Binding [1]}"/>
<GridViewColumn Header="Protocol" Width="Auto"
DisplayMemberBinding="{Binding [2]}"/>
<GridViewColumn Header="Channels" Width="Auto"
DisplayMemberBinding="{Binding [3]}" />
<GridViewColumn Header="Duration" Width="Auto"
DisplayMemberBinding="{Binding [4]}"/>
</GridView>
</ListView.View>

<ListViewItem>
<x:Array Type="{x:Type sys:String}">
<sys:String>This is Date</sys:String>
<sys:String>This is Setup</sys:String>
<sys:String>This is Protocol</sys:String>
<sys:String>This is Channels</sys:String>
<sys:String>This is Duration</sys:String>
</x:Array>
</ListViewItem>
</ListView>

在哪里 sys:xmlns:sys="clr-namespace:System;assembly=mscorlib"
或者您可以创建自己的数据类型来保存这些值:

public class Exam
{
public string Date { get; set; }

public string Setup { get; set; }

//...
}

并在 ListViewItem 中使用它:
<ListView x:Name="examList" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Date" Width="Auto"
DisplayMemberBinding="{Binding Date}"/>
<GridViewColumn Header="Setup" Width="Auto"
DisplayMemberBinding="{Binding Setup}"/>
</GridView>
</ListView.View>

<ListViewItem>
<local:Exam Date="2001/1/1" Setup="Some setup" />
</ListViewItem>
</ListView>

在哪里 local:指向您的 Exam类命名空间。

关于wpf - 如何在 XAML 中手动将 ListViewItem 添加到 WPF 多列 ListView(无绑定(bind)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com