MVVM DataGrid 从选定单元格复制信息

2024-01-28

我正在使用 .Net 4.0 DataGrid 和 MVVM 模式。我需要使用户能够选择单元格并将信息从所选单元格复制到其他 DataGrid 行(通过键盘快捷键或上下文菜单复制/粘贴)。我尝试通过 SelectedItem 或发送 SelectedItem 作为 CommandParameter 来实现此目的,但此功能仅适用于整行,不适用于单元格。 (DataGrid 绑定到包含带有浮点字段的对象的 ObservableCollection。然后这些字段将映射到 DataGrid 单元格) 那么,WPF MVVM 中有没有解决方案如何将 DataGrid 单元格从一行复制到另一行? 提前致谢 xml:

    <DataGrid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="9" AutoGenerateColumns="False"     Height="Auto" HorizontalAlignment="Left" 
Name="dataGrid" VerticalAlignment="Top" Width="{Binding ElementName=grid4,Path=Width}"
ScrollViewer.CanContentScroll="False" FrozenColumnCount="1" SelectionUnit="Cell" SelectionMode="Extended" CanUserSortColumns = "False" 
CanUserReorderColumns="False" CanUserResizeRows="False" RowHeight="25" RowBackground="LightGray" AlternatingRowBackground="White"
ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible"
ItemsSource="{Binding Layers, Mode=TwoWay}"  SelectedItem="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.Selection, Mode=TwoWay}">
 <DataGrid.InputBindings>
    <KeyBinding Gesture="Shift" Command="{Binding ItemHandler}" CommandParameter="{Binding ElementName=dataGrid, Path=SelectedItems}"></KeyBinding>
</DataGrid.InputBindings>

视图模型:

private float _selection = 0.0f;
public float Selection
{
    get
    {
        return _selection;
    }
    set
    {
        if (_selection != value)
        {
            _selection = value;
            NotifyPropertyChanged("Selection");
        }
    }
}

...

public DelegateCommand<IList> SelectionChangedCommand = new DelegateCommand<IList>(
    items =>
    {
        if (items == null)
        {
            NumberOfItemsSelected = 0; 
            return;
        }
        NumberOfItemsSelected = items.Count;
    });
public ICommand ItemHandler
{
    get
    {
        return SelectionChangedCommand;
    }
}

我想你可能会在SelectionUnit财产。将其设置为CellOrRowHeader将选择方法从整行更改为单个单元格。

你确实失去了“我在哪排?”的好感。突出显示,但您关注的是单个单元格。 (您可能可以扩展数据网格以使用当前行逻辑添加您自己的突出显示。)

<DataGrid AutoGenerateColumns="True" Grid.Column="1" Grid.Row="0"
          HorizontalAlignment="Stretch" Name="dataGrid" VerticalAlignment="Stretch"
          DataContext="{Binding}" ItemsSource="{Binding Path=MyDataTable}"
          IsReadOnly="True" SelectionMode="Extended" SelectionUnit="CellOrRowHeader" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVVM DataGrid 从选定单元格复制信息 的相关文章

  • WPF DataGrid 选定项

    我有一个 DataGrid 用户可以通过在最后一行输入数据来添加项目 我还有一个按钮可以删除当前选定的项目 但是 当选择最后一行 空 用于添加新项目 时 最后选定的项目将保留在 SelectedItem 中 因此 如果我打开窗口 选择最后一
  • 为什么我的 WPF 复选框绑定不起作用?

    我正在使用 MVVM VS 2008 和 NET 3 5 SP1 我有一个项目列表 每个项目都公开一个 IsSelected 属性 我添加了一个复选框来管理列表中所有项目的选择 取消选择 更新每个项目的 IsSelected 属性 一切正常
  • Android ViewModel LiveData 在按钮单击时更新视图

    我正在关注这个tutorial https developer android com topic libraries architecture guide html common problems faced by app develop
  • 使用并行任务库时“foreach”失败

    以下代码创建正确数量的文件 但每个文件都包含第一个列表的内容 有人能发现我做错了什么吗 private IList
  • 为什么 Convert.ToInt32(1.0/0.00004) != (Int32)(1.0/0.00004)

    为什么这段代码http ideone com YRcICG http ideone com YRcICG void Main double a 0 00004 Int32 castToInt Int32 1 0 a Int32 conver
  • 如何使用 MVVM 更改数据网格或列表视图中的内容

    我有一个 MainWindowViewModel DataContext 它公开不同的 ObservableCollections 带有 INotifyProperty 的 poco 对象的视图模型 从组合框中选择一个值后 我想单击一个加载
  • Wpf DataGrid通过DataBinding隐藏完整行

    是否有可能通过数据绑定隐藏 DataGrid 行 如果我有一个具有可见性属性的 BO 或 ViewModel 项目 是否可以声明一个绑定 以便在该属性设置为不可见时该行将被隐藏 反之亦然 应该可以通过RowStyle 像这样的东西
  • 带有公式的开源、基于网络的电子表格应用程序

    我正在寻找一个开源电子表格应用程序来粘贴到我的网页中 我正在寻找的最重要的功能是公式 具体来说 我需要能够放入一个单元格来计算其他指定单元格的内容总数 我发现了一些基本的例子 比如Nitobi http www nitobi com pro
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • Breeze.js 查询不更新淘汰赛视图

    我正在通过 Breeze js 查询数据 第一次运行良好 第二次视图未更新 html a Order by Newest a a Order by Score a div ul li strong span span strong span
  • JSON - 是否有任何 XML CDATA 等效项?

    我正在寻找一种 json 解析按原样获取信息的方法 就像 CDATA 一样 而不是尝试序列化它 我们同时使用 net 和 java 客户端和服务器 所以答案应该是关于 JSON 结构 有什么办法可以实现这个结构吗 Thanks JSON 中
  • 文本框和默认按钮绑定更新得太晚了

    我有一个带有这两个控件的简单 WPF 对话框
  • 使用 Caliburn Micro 导航

    我正在使用 Caliburn Micro 现在有一个非常简单的应用程序 它有一个AppView 它实际上有一个用于NavigationBar 一个InnerView 和一个StatusBar 的ContentControl 现在我想处理不同
  • 如何指定“应用程序和服务日志”深处的事件?

    以下代码片段在记录事件时触发事件 示例代码工作正常 但我想要监视的日志实际上是 应用程序和服务日志 gt Microsoft gt Windows gt 任务计划程序 gt 操作 我应该在代码示例中插入什么来代替 应用程序 EventLog
  • 使用数据绑定更新对象类型 LiveData

    我想通过与 livedata 的数据绑定来更新视图 让我们看一下场景 数据类 data class Movie var name String var createdAt String 视图模型 class MyViewModel View
  • 为什么 .NET 4 中的差异仅支持引用类型?

    NET 4 支持协变和逆变 但是 仅支持引用类型 而不支持值类型 这是为什么 基本上 CLR 需要知道它可以将 源 类型的值视为 目标 类型的值 而不执行任何额外的转换 简而言之 源值的位模式必须有效 目标值 这陈述必须相同 否则 CLR
  • 控制不同的DataContext

    控制WPF中不同的DataContext 因为我可以在不同的选项卡中部署多个 DataContext 并控制当前的 DataContext 我在用着Mvvm Light WPF4我有不同的 ViewModels View 但我不知道如何处理
  • AS3 禁用数据网格内文本输入的可编辑/可选择

    我目前正在尝试禁用可选择 可编辑 或将 textInput 更改为动态以获得我想要的结果 我有一个带有下拉菜单和文本输入区域的自定义数据网格 但是 如果我的 型号 列中没有数据 我不想允许在相应的 购买价格 单元格中输入任何内容 col1
  • 从 xaml 获取 RowIndex

    我有一个带有 DataGridTemplateColumns 的 DataGrid 在 TemplateColumn 中 我使用工作正常的 DataTrigger 它从 DataGrid 父级检索项目计数
  • 将 PDF 嵌入到 WPF 应用程序中

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio

随机推荐

  • 迭代器性能

    与直接使用指针相比 实现和使用迭代器是否会带来任何类型的性能损失 假设我们使用最高的编译器优化 代码来自http www cplusplus com reference iterator iterator http www cplusplu
  • 迭代器实现应该如何处理检查异常?

    我将 java sql RecordSet 包装在 java util Iterator 中 我的问题是 如果任何记录集方法抛出 SQLException 我该怎么办 The java util Iterator javadoc http
  • 如何在eclipse中运行maven项目

    我有一个带有 TestNG 的 Java Maven 项目 我想从 eclipse 运行它 我使用 Eclipse Kepler 并安装了 m2eclipse 插件 但是菜单 Run as 中没有任何与 maven 连接的选项 有人可以帮我
  • 当我单击“确定”按钮时,Android AlertDialog 总是退出

    有没有办法在单击 确定 后进行验证 我没有忽略它 但当我单击 确定 时它会关闭 我编写了一个使用一些编辑文本的自定义 AlertDialog 问题是我无法验证任何内容 如果验证失败 我想更改消息并告诉用户 但它只是关闭 我正在使用Alert
  • Blazor 服务器应用程序中的 HttpContext.Session

    我正在尝试使用HttpContext Session在我的 ASP NET Core Blazor Server 应用程序中 如此处所述MS Doc https learn microsoft com en us aspnet core f
  • TCPDF:将文本剪切到单元格宽度

    我正在广泛使用 TCPDF 的 Cell 方法生成 PDF 报告 使用 Cell 方法打印的文本超出了方法中指定的宽度 我只想打印适合指定宽度的文本部分 但不要溢出或换行到下一行 我不想要字体拉伸策略 我搜索了很多但找不到解决方案 还有其他
  • 如何优雅地为具有多态关联的模型构建表单?

    这是我的模型 class Lesson lt ActiveRecord Base belongs to topic polymorphic gt true validates presence of topic type topic id
  • 如何检测三角形区域的触摸

    对于我的应用程序 我需要将 iPhone 的屏幕对角线分成 4 个部分 并检测哪个部分被触摸 我很困惑 因为我的区域是三角形而不是正方形 我找不到解决方案来检测哪个三角形被触摸 我用 TouchBegan 方法得到了被触摸的点 然后我被卡住
  • 收到电子邮件时电子表格自动更新(发布/订阅)但信息错误[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在 Google Cloud Platform 上设置了第一个 Pub Sub 它使用 Gmail API 在每次收到电子邮件时更新
  • xml 文档中禁止 DTD 异常

    当尝试在 C 应用程序中解析 XML 文档时 我收到此错误 出于安全原因 此 XML 文档中禁止 DTD 要启用 DTD 处理 请将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false 并将设置传递到
  • 在动态功能模块中找不到@BindindAdapter

    我在应用程序模块中有扩展功能 BindingAdapter imageSrc fun setImageUrl view ImageView userId Int try val drawableRes when userId 6 0 gt
  • 使用网站站长工具测试转义片段搜索

    我的网站是用 AngularJS 编写的 所以我最近创建了所有内容的 HTML 快照 将转义片段标签添加到所有页面的头部 元名称 fragment 内容 然后尝试测试以查看新设置是否在网站站长工具中正常运行 当我查看源代码时 我看到转义的片
  • Javascript 画布像素操作

    我有产品图片 每个图片都有两个可配置区域 如下所示 一 背景 2 前景 我必须开发一项功能 让客户可以更改两个区域的颜色并保存设计 我的问题是 我正在遍历图像以读取旧像素值并用新选择的颜色更改它 位旧像素值不一致 图像上存在纹理效果 这会导
  • 在 PostgreSQL 中设置双精度格式

    我有一个包含 3 列的表 customer name varchar account type varchar current balance double precision current balance 的示例值 1200 1500
  • io.sockets.on 无法在 Node.js 中的路由内工作

    我正在尝试在 Node js 和 Express 应用程序的路由内使用 io sockets on 我一直在关注这里所说的 https stackoverflow com a 31277123 8271839 https stackover
  • 在 Laravel 中通过身份验证保护所有管理/路由

    我是 Laravel 的新手 正在为我的第一个应用程序设置管理面板授权 我当前设置文件的方式是 controllers admin dashboard php settings php non admin controller1 php n
  • 以闪亮的方式打印文本

    我已经阅读了使用 HTML 在 Shiny 中打印单独行的各种方法 但并不满意 我的目标是对各种自变量进行装箱 并以 SQL 语句的形式提供代码 然后用户可以使用该代码在 SAS 中进行装箱 我最终希望在我的闪亮应用程序中看到打印的文本是执
  • JULIA:如何在 Julia 中随机排列向量?

    我有一个随机数向量 我想使用 randperm 函数对其进行随机排列 如下所示 但它不起作用 X rand 100000 a vector of 100000 random elements Y randperm X want to per
  • Angular 2 RC 5 Bootstrap 自定义 HTTP 类

    在 Angular 2 RC 4 中 我有一个 HttpLoading 类 它扩展了 Angular2 的原始 Http 我可以使用以下代码在引导程序中使用它 没有任何问题 bootstrap AppComponent HTTP PROVI
  • MVVM DataGrid 从选定单元格复制信息

    我正在使用 Net 4 0 DataGrid 和 MVVM 模式 我需要使用户能够选择单元格并将信息从所选单元格复制到其他 DataGrid 行 通过键盘快捷键或上下文菜单复制 粘贴 我尝试通过 SelectedItem 或发送 Selec