如何在 XAML 中将 List 作为 ItemSource 绑定到 ListView?

2023-12-02

我正在学习 WPF,希望有一个类似于 LinkedList 的集合,以便我可以在其中添加和删除字符串。我想要一个ListView通过数据绑定监听该集合。我怎样才能将一个简单的列表集合绑定到ListView在 XAML 中?

我的想法(不起作用)是这样的:

<Window x:Class="TestApp.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <LinkedList x:Key="myList"></LinkedList> //Wrong
    <Window.Resources>
    <Grid>
    <ListView Height="100" HorizontalAlignment="Left" Margin="88,134,0,0" 
      Name="listView1" VerticalAlignment="Top" Width="120" 
      ItemsSource="{Binding Source={StaticResource myList}}"/> //Wrong
    </Grid>
</Window>

我的所有代码(更新版本,不起作用):

<Window x:Class="TestApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" 
          Name="textBox1" VerticalAlignment="Top" Width="120" />
        <Button Content="Button" Height="23" HorizontalAlignment="Right" 
          Margin="0,12,290,0" Name="button1" VerticalAlignment="Top" Width="75" 
          Click="button1_Click" />
        <ListView Height="100" HorizontalAlignment="Left" Margin="88,134,0,0" 
          Name="listView1" VerticalAlignment="Top" Width="120" 
          ItemsSource="{Binding myList}"/>
    </Grid>
</Window>

C#-code:

namespace TestApp
{
    public partial class MainWindow : Window
    {
        ObservableCollection<string> myList = new ObservableCollection<string>();
        public MainWindow()
        {
            InitializeComponent();
            myList.Add("first string");
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            myList.Add(textBox1.Text);
            textBox1.Text = myList.Count+"st";
        }
    }
}

选择作为答案的方法效果很好......但我并不特别喜欢必须指定DataContext以编程方式在 XAML 中设置其他所有内容时,我觉得它不“正确”(也许这只是我的情况)。因此,对于下一个人,或者像我一样思考并通过搜索引擎找到此内容的任何其他人(就像我所做的那样),以下是在 XAML 中执行此操作的方法:

C#

public sealed partial class MainPage : Page
{
    public ObservableCollection<string> Messages { get; set; }

    public MainPage()
    {
        this.Messages = new ObservableCollection<string>();
        this.InitializeComponent();
    }
}

XAML

<Window
    ....
    DataContext="{Binding RelativeSource={RelativeSource Self}}"
    ...>

    <ListView ItemsSource="{Binding Messages}" ... />

</Window>

说实话我认为{Binding RelativeSource={RelativeSource Self}}应该是任何顶级元素的默认值(Page, Window, ETC...)DataConext因为这就是很多人期望它如何工作的方式,我知道这就是我认为它会如何工作的方式。老实说,我感觉{Binding RelativeSource={RelativeSource Self}}有点冗长,对于较短的语法来说几乎很长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 XAML 中将 List 作为 ItemSource 绑定到 ListView? 的相关文章

  • 应如何在 WinForms GUI 控件和客户端类之间同步数据?

    什么方法被认为是保持 GUI 控件内的数据结构与应用程序维护的数据结构同步的 标准 例如 在 WinForms 中 如果创建一个 ListView 实例 而不是将其指向表示要出现在列表中的项目的数据结构 则必须以编程方式实例化 ListVi
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 在表格中可视化 2D 数据

    我需要一些帮助并且需要指出正确的方向 我正在创建一个应显示二维数据的 WPF 应用程序 它应该显示如下 y x 1 2 3 4 5 1 1 2 3 4 5 2 2 4 6 8 10 3 3 6 9 12 15 4 4 8 12 16 20
  • 使用 VSTest 代替 MSTest 运行单元测试用例

    我在 TFS2010 服务器上有一个 x64 平台 C 解决方案 VS2012 我已将一个单元测试项目 也是 x64 附加到此解决方案并创建了一个构建定义 当我对构建进行排队时 它成功了 但单元测试用例不会被执行 这是因为 MSTest 是
  • 密码盒和 MVVM

    我们有以下场景 MVVM 用户界面 用户可以在其中输入密码 实际上是一个PasswordBox 应该做一些工作的服务器 服务器连接到一些需要身份验证的数据库 我已经读过这个关于MVVM中PasswordBox的问题 https stacko
  • 使用 VBScript 经典 ASP 中的对象集合?

    我有一个名为 Company 的类 它具有 CompanyName CompanyCode 和 IsActive 等属性 该类是用 VBScript 编写的 我想在经典 ASP 中使用 VBScript 存储 Company 对象的集合 这
  • RichTextbox SelectionStart 返回错误的索引

    我需要向用户显示光标上文本的选择开始和长度 就像在 notepad exe 中一样 选择长度没有问题 因为 Richtextbox 支持带有开始和结束的选择属性 http msdn microsoft com en us library s
  • 如何在ZK模板标签中使用if=“some condition”

    我的 ZUL 文件中有一个 标记 并且我想在满足某些条件时 例如 当某些 LABEL 的值更改为某些文本时 使用此模板 请看下面的代码 如您所见 templateStatus 是我的标签名称 但它不起作用 我该如何解决这个问题
  • 使用backgroundworker手动停止调试

    我正在编写一个 WPF C 项目 使用BackgroundWorker 带有进度条的弹出窗口 我开始调试 F5 键 来检查我的程序 之后BackgroundWorker完成并关闭弹出窗口 关闭MainWindow不会自动停止调试过程 我必须
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 如何将对象(模型类型对象)插入到 Laravel 中 Collection 对象的特定索引号处?

    我读过戴尔 里斯的代码明亮 https daylerees com codebright 了解更多关于雄辩的信息Collection在 Laravel 中使用 还做了一些其他研究 但找不到我正在寻找的答案 我想插入一个对象 Model输入对
  • 用于添加新实体的 MVVM WPF ViewModel

    我对 WPF 中的 MVVM 的概念是 我们为应用程序中的每个模型都有一个 ViewModel 这意味着如果我们有 Customer 类 实体 那么我们将有 CustomerViewModel CustomerViewModel 将具有代表
  • JPA @OrderBy() 通过关系表

    我需要一些有关 JPA 框架的帮助 我读过一些关于这个主题的 某种程度上 的答案 但我无法得出任何结论 首先这是我正在使用的设计示例 BusinessObject public class ClassA Column name ID nul
  • 创建可以绑定到 DataGrid 的自定义集合

    我在一家建筑公司工作 正在为 3D 建模程序创建一个插件来协助设计 我有一个Building类 以及一个Floor班级 该建筑包含对楼层列表地板的集合 我正在尝试找出以什么为基础楼层列表集合 以便我可以最大限度地减少创建编辑集合的界面所需的
  • WPF 画布缩放/变换以适合

    我重新发布这个问题 因为上次我没有得到太多答复 希望重新措辞可能有所帮助 本质上 我想做的是创建一个数据绑定画布 它将自动缩放其内容以 填充 可用空间 有点像缩放以适应操作 不幸的是 我的 WPF 技能还不是很强 我正在努力弄清楚如何完成最
  • 给一个窗口句柄(Native),如何使用C#关闭窗口?

    给定一个窗口句柄 如何使用该窗口句柄关闭该窗口 最简单的方法是使用 PInvoke 并执行SendMessage with WM CLOSE DllImport user32 dll CharSet CharSet Auto private
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • WindowsFormsHost ZOrder

    看起来 WindowsFormsHost 控件被设置为显示在顶部 有没有办法更改其 z 顺序 以允许同一窗口上的其他 WPF 控件在 WindowsFormsHost 控件之上可见 不幸的是 不能 由于 winformshost 合成到 W
  • WPF:绑定到 ControlTemplate 中的命令

    我正在尝试向自定义 ListView MyListView 添加一个按钮 该按钮会触发 MyListView 中定义的命令 MyCustomCommand 我通过应用 ControlTemplate 添加了按钮 和标题文本 问题是我还没有找

随机推荐

  • 如何修复使用 Graphicsmagick 收集的损坏的 alpha 通道(残留像素)的 .gif?

    我想将带有 Alpha 通道的 avi 转换为 gif 首先 我使用 ffmpeg i source avi vf scale 720 1 flags lanczos fps 10 frames ffout 03d png 将 avi 转换
  • 如何“解码”字体文件的eexec?

    我有一个 pfa 字体文件我想阅读渲染字体的 算法 然而 大部分信息都隐藏在二进制行中 currentfile eexec 743F8413F3636CA85A9FFEFB50B4BB27302A5F6C876586CCC1670A7EF5
  • 如何在 PHP 中请求 facebook 权限?

    如何在 PHP 中请求 facebook 权限 你能给我举个例子吗 thanks 假设你有用户的access token 你可以通过 facebook gt getAccessToken 用户登录后 try permissions face
  • 推送消息不使用分布式证书发送

    我可以使用沙箱使用开发人员 p12 文件发送推送通知 但我在应用程序商店上的应用程序 我使用与 gateway push apple com 消息一起使用的分发证书 f12 文件无法到达设备 在分布式证书上激活推送通知服务 我检查了deve
  • 基于位置追踪的iOS全时后台服务

    我目前正在编写一个应用程序 该应用程序依赖于位置跟踪并将有关位置的数据发送到服务器 然而 问题是它必须 24 7 运行 目前我遇到每 2 3 天发生一次的随机崩溃 为了使应用程序在后台持续运行 我所做的是将 NSTimer 放入 appli
  • 如何从标记存储在变量中的树中选择节点?

    考虑以下 XSLT 脚本
  • Windows 中 Git 克隆权限失败

    当我在 Windows 10 v 1909 上使用 CMD 或带有 ssh agent 的 PowerShell 从 GitHub 克隆时 显示以下内容 email protected Permission denied publickey
  • 如何动态改变网页的标题?

    我有一个网页 它实现了一组选项卡 每个选项卡显示不同的内容 单击选项卡不会刷新页面 而是在客户端隐藏 取消隐藏内容 现在需要根据页面上选择的选项卡更改页面标题 出于 SEO 原因 这可能吗 有人可以建议一个解决方案 通过 javascrip
  • 通过多索引的子集从 pandas 中选择行

    我在 pandas 中有一个多索引数据框 索引中有 4 列 还有一些数据列 示例如下 import pandas as pd import numpy as np cnames K1 K2 K3 K4 D1 D2 rdata pd Data
  • HTML - 阿拉伯语支持

    我有一个网站 我必须在其中添加一些阿拉伯语行 如何做到这一点 在哪里获取阿拉伯文本字符 如何使页面支持阿拉伯语 我必须每页放一行 而且有很多页面 所以不能四处制作图像并放置它们 这是所需的答案 但每个人都只回答了其中的一部分 Step 1
  • MySQL 从一个表中选择不在另一个表中的特定条目

    当尝试从表中选择不在另一个表中的特定条目时 我在 MySQL 中遇到问题 我知道这句话听起来很疯狂 但这是我想做的一个例子 表用户 user id username password plus other columns not impor
  • 覆盖非活动选项卡的 setTimeout 行为

    我目前正在使用 WebRTC 在 JavaScript 中开发一个点对点游戏 它将其中一个对等点 即主机 视为服务器 而任何其他加入的对等点则通过 Node js 代理服务器连接到主机 我目前正在尝试解决以下问题 如果主机切换选项卡以使游戏
  • 从 ASP.NET 背后的代码调用 Javascript 函数

    我试图在单击按钮时从后面的代码调用其自己文件中的 javascript 方法 aspx 文件 protected void Next Click object sender EventArgs e if hidden Value Respo
  • 程序集调用堆栈 - 术语问题

    我对 Assembly 完全陌生 希望确认以下陈述中我有误解并需要纠正的地方 堆栈指针 ESP 指的是栈顶 最低内存地址 基指针 EBP 用于在构建堆栈帧时临时存储各种内存地址 它通常保存当前堆栈帧的最高内存地址 指令指针 EIP 指的是内
  • 如何在xcode中的表视图中显示json数据

    我是 ios 新手 目前正在使用 json 我只是使用要在表格视图中显示的 iTunes 前 10 名专辑我收到了格式化并在表格视图中显示的数据 但我只能显示专辑名称 但我想显示要在其中显示的特定专辑的所有详细信息同一个细胞 这是我的完整代
  • HTML 元素在使用 jquery 时不会淡出

    我有一个小型网络项目 您可以在这里看到 http seegermattijs be pickone 当您插入两个项目时 选择一个按钮应该淡入 不幸的是它不会淡出 我使用以下代码 bigBtn fadeIn slow 一开始我让 bigBtn
  • 具有独立 where 子句的多列 - SQL Pivot?

    是否可以采用以下方式构建的表格 ID Month Info1 Info2 1 1 A B 1 2 C D 1 3 E F 2 3 G H 2 4 I J 最终形成这样的表格 ID JanInfo1 JanInfo2 FebInfo1 Feb
  • 如何运行所有 Ruby 脚本并出现警告?

    通过修改 Unix 或 Windows 环境变量 如何始终在默认情况下打开警告的情况下运行 Ruby 脚本 理想情况下 即使我间接运行脚本 例如通过 Rake 这也应该起作用 而不仅仅是直接运行脚本时 基于评论这个答案 The RUBYOP
  • 简单的“Hello World”风格的程序在执行开始后很快就会关闭

    我正在通过一本叫做 C 的书学习 C C 初学者指南第二版 当我运行可执行文件时 它会显示它半秒钟并关闭它 我在 Windows 8 1 上使用 Microsoft Visual Studio Express 2013 for Window
  • 如何在 XAML 中将 List 作为 ItemSource 绑定到 ListView?

    我正在学习 WPF 希望有一个类似于 LinkedList 的集合 以便我可以在其中添加和删除字符串 我想要一个ListView通过数据绑定监听该集合 我怎样才能将一个简单的列表集合绑定到ListView在 XAML 中 我的想法 不起作用