将文本框中的数据显示到 wpf 中的列表视图中

2024-01-15

我有一个 C# 项目:

XAML 代码:

<Window x:Class="Revision.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Patient Information" Height="456.36" Width="935.208">
<Window.Resources>
    <Style x:Key="SliderStyle">
        <Setter Property="FrameworkElement.Width" Value="100"/>
        <Setter Property="RangeBase.Minimum" Value="0"/>
        <Setter Property="RangeBase.Maximum" Value="100"/>
        <Setter Property="Slider.IsSnapToTickEnabled" Value="true"/>
        <Setter Property="FrameworkElement.VerticalAlignment" Value="Center"/>
        <Setter Property="RangeBase.Value" Value="0"/>
        <Setter Property="Slider.AutoToolTipPlacement" Value="TopLeft"/>


    </Style>
</Window.Resources>
<Grid>
    <Label Content="First Name" Height="28" HorizontalAlignment="Left" Margin="19,23,0,0" Name="label1" VerticalAlignment="Top" />
    <Label Content="Last Name" Height="28" HorizontalAlignment="Left" Margin="19,82,0,0" Name="label2" VerticalAlignment="Top" />
    <Label Content="Address" Height="28" HorizontalAlignment="Left" Margin="20,144,0,0" Name="label3" VerticalAlignment="Top" />
    <Label Content="Security Type" Height="28" HorizontalAlignment="Left" Margin="19,203,0,0" Name="label4" VerticalAlignment="Top" />
    <TextBox Height="36" HorizontalAlignment="Left" Margin="105,23,0,0" Name="textBox1" VerticalAlignment="Top" Width="197" />
    <TextBox Height="36" HorizontalAlignment="Left" Margin="105,82,0,0" Name="textBox2" VerticalAlignment="Top" Width="197" />
    <TextBox Height="36" HorizontalAlignment="Left" Margin="105,136,0,0" Name="textBox3" VerticalAlignment="Top" Width="197" />
    <ComboBox Height="36" Margin="105,195,625,0" Name="comboBox1" VerticalAlignment="Top">
        <ComboBoxItem Content="Private Assurance" Name="PrA"/>
        <ComboBoxItem Content="Public Assurance" Name="PA"/>
        <ComboBoxItem Content="No Assurance" Name="NA"/>
    </ComboBox>
    <Button Content="Submit" Height="33" HorizontalAlignment="Left" Margin="147,365,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click"/>
    <Button Content="Display" Height="33" HorizontalAlignment="Left" Margin="227,365,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
    <Label Content="Gender" HorizontalAlignment="Left" Margin="20,255,0,0" VerticalAlignment="Top"/>
    <RadioButton x:Name="maleRadio" Content="Male" HorizontalAlignment="Left" Margin="105,266,0,0" VerticalAlignment="Top"/>
    <RadioButton x:Name="femaleRadio" Content="Female" HorizontalAlignment="Left" Margin="192,266,0,0" VerticalAlignment="Top"/>
    <Slider x:Name="redSlider" Style="{StaticResource SliderStyle}" Value="{Binding Text, ElementName=textBox5}" Margin="74,313,636,56" SmallChange="1" Height="56" Width="Auto" />
    <TextBox x:Name="textBox5"  Text="{Binding Value, ElementName=redSlider}" Margin="296,313,588,86" SelectionOpacity="1" FontSize="13" />
    <Label Content="Age" HorizontalAlignment="Left" Margin="38,313,0,0" VerticalAlignment="Top"/>
    <ListView x:Name="ListView1" HorizontalAlignment="Left" Height="375" Margin="344,23,0,0" VerticalAlignment="Top" Width="567">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="First Name" Width="100"
DisplayMemberBinding="" />
                <GridViewColumn Header="Last Name" Width="80"
DisplayMemberBinding="" />
                <GridViewColumn Header="Address" Width="100"
DisplayMemberBinding="" />
                <GridViewColumn Header="Security Type" Width="80"
DisplayMemberBinding="" />
                <GridViewColumn Header="Gender" Width="100"
DisplayMemberBinding="" />
                <GridViewColumn Header="Age" Width="100"
DisplayMemberBinding="" />
            </GridView>
        </ListView.View>
    </ListView>
</Grid>
</Window>

我有一个班级病人:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Revision
{
class Patient
{
    public string firstname { get; set; }
    public string lastname { get; set; }
    public string Address { get; set; }
    public string securityType {get; set;}
    public string gender { get; set; }
    public string age { get; set; }

    public Patient(string fn, string ln, string ad, string st,string ge,string ag)
    {

        firstname = fn;
        lastname = ln;
        Address = ad;
        securityType = st;
        gender = ge;
        age = ag;

    }
    public override string ToString()
    {

        return string.Format("{0,-10} {1,-10} {2,-10} {3,-10} {4,-10} {5,-10}",

            firstname, lastname, Address, securityType, gender,age);
    }
}
}

和主程序

public partial class MainWindow : Window
{
   // Patient [] patients = new Patient{}
    Patient [] patients = new Patient[100];
    private List<Patient> books = new List<Patient>();
    int i=0;
    string g;
    public MainWindow()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        string x = "";
        if (PrA.IsSelected)
        {
            x = PrA.Content.ToString();
        }

        else if (PA.IsSelected)
        {
            x = PA.Content.ToString();
        }
        else if (NA.IsSelected)
        {
            x = NA.Content.ToString();
        }

        if (maleRadio.IsChecked == true)
            g = "Male";
        if(femaleRadio.IsChecked==true)
            g="Female";

       patients[i] = new Patient(
             textBox1.Text, textBox2.Text, textBox3.Text, g, textBox5.Text, x);
        i = i + 1;
       // Patient[] patients = { 
         //                        new Patient (
           //   textBox1.Text, textBox2.Text, textBox3.Text, x)};

        textBox1.Clear();
        textBox2.Clear();
        textBox3.Clear();

        textBox5.Clear();


    }
}

所以问题是我想在列表视图中显示在文本框、单选按钮和组合框中输入的数据...


将数据放入列表视图的正常方法是通过数据绑定。数据绑定是 WPF 在视图和代码之间传输数据的方式。

所有可以显示多个项目的 wpf 控件,如列表视图、列表框、组合框等,都有一个ItemSource财产。通过将此属性设置为可枚举,视图将显示集合中的每个项目。

默认情况下,它只会将每个项目呈现为文本块,显示在每个对象上调用 ToString() 的结果。有多种定制方法。在您的情况下,您已经定义了列GridView and GridViewColumns. Each GridViewColumn has a DisplayMemberBinding它可以绑定到您想要在该列中显示的属性。

So...

我不确定您使用它是否容易。正如其他人所提到的,您确实应该了解一些有关 wpf 中的绑定以及模型-视图-视图模型 (MVVM) 模式的知识。 MVVM 确实有助于保持代码整洁。

无论如何...

您的视图可以更改为如下所示:

<ListView x:Name="ListView1" HorizontalAlignment="Left" Height="375" Margin="344,23,0,0" VerticalAlignment="Top" Width="567" ItemsSource="{Binding patients}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="First Name" Width="100" DisplayMemberBinding="{Binding path=firstname}" />
                <GridViewColumn Header="Last Name" Width="80" DisplayMemberBinding="{Binding path=lastname}" />
                <GridViewColumn Header="Address" Width="100" DisplayMemberBinding="{Binding path=Address}" />
                <GridViewColumn Header="Security Type" Width="80" DisplayMemberBinding="{Binding path=securityType}" />
                <GridViewColumn Header="Gender" Width="100" DisplayMemberBinding="{Binding path=gender}" />
                <GridViewColumn Header="Age" Width="100" DisplayMemberBinding="{Binding path=age}" />
            </GridView>
        </ListView.View>
    </ListView>

我会将您的固定大小的患者数组更改为ObservableCollection<Patient>。一个可以增加尺寸的集合几乎总是比固定尺寸的集合更好。这ObservableCollection<>还有一些额外的技巧。每当添加或删除项目时,它都会通知视图。

看一眼wpft教程网 http://wpftutorial.net。你会发现一个不错的绑定简介 http://wpftutorial.net/DataBindingOverview.html , MVVM http://wpftutorial.net/MVVM.html还有更多。

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

将文本框中的数据显示到 wpf 中的列表视图中 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且

随机推荐

  • 如何从维基百科中获取纯文本

    我想编写一个仅获取维基百科描述部分的脚本 也就是说 当我说 wiki bla bla bla 它将转到维基百科页面为bla bla bla http en wikipedia org wiki Bla Bla Bla 获取以下内容 并将其返
  • 如何在运行时获取NHibernate在代码中生成的SQL?

    我知道您可以通过将 NHibernate 生成的 SQL 连接到 log4net 或通过管道将其输出到控制台 show sql 选项 来查看 NHibernate 生成的 SQL 但是有没有办法在运行时在代码中获取生成的 SQL 我希望能够
  • Excel VBA - 网页抓取 - 获取 HTML 表格单元格中的值

    我正在尝试创建一个宏来抓取货物跟踪网站 但我必须创建 4 个这样的宏 因为每家航空公司都有不同的网站 我是 VBA 和网页抓取的新手 我已经整理了适用于 1 个网站的代码 但当我尝试将其复制到另一个时 我陷入了循环 我想这可能是我指代该元素
  • Excel VBA:将计算结果数组作为参数传递给函数

    我有一个接受数组的 VBA 函数 如果我向它传递一个引用 例如A1 A10 它不接受 公式 参数 例如A1 A10 1 or A1 A10 2 生成的单元格包含 VALUE 许多Excel函数都支持这一点 例如linest 我可以编写以下公
  • 如何解决 R Markdown (Knit)“‘closure’不可子集化”?

    我第一次尝试使用 RMarkdown Knit 来生成 pdf 默认文件 文件 gt 新建文件 gt R Markdown 运行良好 它显示编译时生成的 pdf 例如 运行以下代码 r cars summary cars 但是 如果我只是用
  • Meteor collection.insert回调问题

    根据 Meteor 文档 collection insert doc callback callback功能 选修的 如果存在 则使用错误对象作为第一个参数和 id 作为第二个参数进行调用 然后往下 在服务器上 如果您不提供回调 则插入块直
  • Unity单例代码

    我是新来的Unity http unity codeplex com 我正在尝试编写一些 Unity 逻辑来初始化和注册 解析 Email 对象的单例实例 以便它可以在多个其他对象中使用 下面的一个示例是 OperationEntity 因
  • Microsoft.ML 和 Xamarin

    Microsoft ML 在 Xamarin 中工作吗 我已经关注了许多教程和视频https dotnet microsoft com learn ml dotnet https dotnet microsoft com learn ml
  • 如何使用JAVA从html页面获取表格

    我正在开发一个项目 尝试从互联网获取财务报表并在 JAVA 应用程序中使用它们来自动创建比率和图表 我正在使用的网站使用登录名和密码才能进入牌桌 标签是 TBODY 但 html 中还有另外 2 个 TBODY 如何使用 java 将表打印
  • Matplotlib - 添加与轴底部对齐的标签

    我想向图表上的垂直线添加标签 本例中为洋红色线 TEXT TO GO HERE 问题是我不知道 Y 轴的最小值 因为该轴是自动的 并且 text 函数需要 x 和 y 值 我希望能够将文本与图的底部对齐 或者找到最小 Y 轴值 在本例中 m
  • 如何在应用程序中的所有类之间共享数组?

    我想共享一个数组 所有类都可以 获取 和 更改 该数组内的数据 类似于全局数组或多路访问数组 这如何通过 ActionScript 3 0 实现 有几种方法可以解决这个问题 一种是使用全局变量 如 unkiwii 的答案中所建议的 但这在
  • 在终端中运行每个命令后看到“致命:拒绝将 HEAD 指向 refs/ 之外”

    我已经几周没有使用终端了 在运行 Brew Upgrade 来升级 更新我的所有软件包后 我开始在运行每个命令后看到 致命 拒绝将 HEAD 指向 refs 之外 我不太熟悉终端或 Git 所以我不知道这意味着什么 请提供一些建议 场景来解
  • 错误:当我用 gradle 中的实现替换编译时(依赖项)

    我将 Android Studio 从 3 0 1 更新到 3 1 0 但更新后 当我构建我的项目时 它显示2 警告 1 用实现代替编译 编译支持将于 2018 年底结束 2 将 testCompile 替换为 testImplementa
  • 火花作业卡桑德拉错误

    每次我使用 cassandra 连接器在 Spark 中运行 scala 程序时都会收到此错误 Exception during preparation of SELECT count FROM eventtest simpletbl WH
  • 如何将 useRef 与 Typescript/Formik 一起使用?

    我正在通过一个ref属性到我的自定义 FieldInput 中 我使用它来验证表单的 Formik 然而 它给出了一些 Typescript 错误 例如 在我的函数中 const handleSubmitForm values FormVa
  • 错误:找不到模块“index”\n需要堆栈:\n- /var/runtime/index.mjs

    我正在尝试通过 CDK 部署在打字稿中实现的 lambda 我能够成功部署 lambda 但是当我测试它时 出现以下错误 errorType Runtime ImportModuleError errorMessage Error Cann
  • 将图像作为二进制数据写入文本文件 C#

    我需要创建一个文件 将图像作为文本嵌入到某些记录中 我在将图像写入文本时遇到一些问题 我正在做的是将图像作为字节数组从 SQL 数据库 图像类型 收集 然后通过遍历每个字节并将该字节的 ASCII 等效项写入该文件 将该图像写入文本文件 在
  • 尝试比较两个分布

    我在互联网上找到了这段代码 它将正态分布与不同的学生分布进行了比较 x lt seq 4 4 length 100 hx lt dnorm x degf lt c 1 3 8 30 colors lt c red blue darkgree
  • 有人将 WPF 用于真正的 LOB 应用程序吗?

    有人将 WPF 用于真正的 LOB 应用程序吗 我们都看过 WPF 的巧妙演示 展示了映射到 3D 元素的视频 这些看起来很棒 但构成大多数开发人员努力的业务线应用程序的现实世界又如何呢 WPF 仅仅是为了美观吗 当我们讨论它时 聪明人正在
  • 将文本框中的数据显示到 wpf 中的列表视图中

    我有一个 C 项目 XAML 代码