绑定到 ICollectionView 时模拟数据不显示

2023-11-30

如果我绑定我的ListBox到视图模型ObservableCollection或 XAML 资源CollectionViewSource,模拟数据在设计时显示。

有时CollectionViewSource由于某些 XAML 更改而停止显示此数据,但在重建代码后,它再次用虚假数据填充控件。

在我的例子中,分组、排序和过滤是在 ViewModel 中控制的(并从数据库中重试),所以我决定转向ICollectionView基于 ViewModel 的属性。不幸的是,视图根本不再获取模拟数据。

这是我的方法的简单示例:

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Test"

        mc:Ignorable="d"
        d:DataContext="{d:DesignInstance local:MainWindowViewModel }"

        Title="MainWindow" Height="100" Width="525"
    >

    <Window.Resources>

        <CollectionViewSource x:Key="ItemsCollectionViewSource" Source="{Binding ItemsObservableCollection}"/>

    </Window.Resources>

    <UniformGrid Columns="6">

        <ListBox ItemsSource="{Binding ItemsObservableCollection}" Background="WhiteSmoke" />

        <ListBox ItemsSource="{Binding Source={StaticResource ItemsCollectionViewSource}}" Background="LightYellow" />

        <ListBox ItemsSource="{Binding ItemsICollectionView}" Background="WhiteSmoke" />

        <ListBox ItemsSource="{Binding ItemsCollectionView}" Background="LightYellow" />

        <ListBox ItemsSource="{Binding ItemsListCollectionView}" Background="WhiteSmoke" />

        <ListBox ItemsSource="{Binding ItemsBackCollectionViewSource}" Background="LightYellow" />

    </UniformGrid>

</Window>

后面的代码:

namespace Test
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            DataContext = new MainWindowViewModel();

            InitializeComponent();
        }
    }
}

和视图模型:

using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows.Data;

namespace Test
{
    public class MainWindowViewModel
    {
        public ICollectionView ItemsICollectionView { get; set; }

        public CollectionView ItemsCollectionView { get; set; }

        public ListCollectionView ItemsListCollectionView { get; set; }

        public ObservableCollection<string> ItemsObservableCollection { get; set; }

        public CollectionViewSource ItemsBackCollectionViewSource { get; set; }

        public MainWindowViewModel()
        {
            ItemsObservableCollection = new ObservableCollection<string> {"a", "b", "c"};

            ItemsICollectionView = CollectionViewSource.GetDefaultView(ItemsObservableCollection);

            ItemsCollectionView = CollectionViewSource.GetDefaultView(ItemsObservableCollection) as CollectionView;

            ItemsListCollectionView = CollectionViewSource.GetDefaultView(ItemsObservableCollection) as ListCollectionView;

            ItemsBackCollectionViewSource = new CollectionViewSource {Source = ItemsObservableCollection};
        }
    }
}

我尝试过的将 CollectionViewSource 移动到 ViewModel 的方法都不允许我查看模拟数据:

enter image description here

我对这些控件进行了一些调试比较,但它们在运行时设置得非常相同。我不知道在设计时进行调试的能力。

我是否缺少某些东西,或者必须如此? 谢谢


None

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

绑定到 ICollectionView 时模拟数据不显示 的相关文章

随机推荐

  • 创建多个(15+)HTTP 响应过滤器,继承与组合与注入

    首先是关于我想要实现的目标的一些背景故事 我正在创建一个自定义 HTTP 模块 其目的是拦截发送到多个 15 不同 ArcGIS REST Web 服务的消息 拦截的请求和 或响应将被剥离基于当前用户的任何受限信息 例如 返回多个层的调用可
  • 这在 JavaScript 中叫什么? ({名称,值}) => [重复]

    这个问题在这里已经有答案了 在 JavaScript 中 在这种情况下 const component name value gt span span 其中箭头函数的第一个参数与其成员分开 props gt name value 这个叫什么
  • Skybox OpenGL ES iPhone 和 iPad

    我需要创建一个虚拟旅游工具iOS 这是一个考古应用程序 用户可以在历史建筑内或参观考古发掘时打开它 不需要末日般的主观观点 只是一个天空盒 该应用程序将包含一个兴趣点 POI 列表 每个 POI 都有自己的天空盒 我想我可以使用OpenGL
  • BufferedImage 意外改变颜色

    我有以下代码 它创建灰度 BufferedImage 然后设置每个像素的随机颜色 import java awt image BufferedImage public class Main public static void main S
  • Android:在缩放后找到ImageView上的绝对点击位置(使用矩阵布局使用捏合缩放)

    我正在使用 Hello Android 第 3 版中的代码来实现捏合缩放功能 使用此功能后 捏合缩放工作正常 但缩放后我想获得图像视图上的绝对单击位置 这是我的代码 package org example touch import andr
  • Youtube上传api重复视频(获取正确的ID)

    当视频重复时 假设 v GgVH5fXXYSE 有没有一种方法可以使用重复的 id 找到 好 视频 应该有效的视频 的 videoid 所以用 GgVH5fXXYSE 我可以找到 eNqZgEgOfsw 谢谢 不幸的是 没有办法获取这些信息
  • 测试折叠上的 CV 和欠采样

    我对构建具有不平衡数据的 ML 分类器有点迷失 80 20 数据集有30列 目标是标签 我想预测主要课程 我正在尝试重现以下步骤 分割训练 测试数据 在列车组上执行 CV 仅在测试折叠上应用欠采样 在 CV 的帮助下选择模型后 对训练集进行
  • 如何在 XSLT 中进行分页

    我有以下 XSLT
  • Oracle 中将字符串日期转换为日期时间

    我怎样才能把这个字符串日期转换为oracle中的日期时间 2011 07 28T23 54 14Z 使用此代码会引发错误 TO DATE 2011 07 28T23 54 14Z YYYY MM DD HH24 MI SS 如何才能做到这一
  • 如何在 UserControl 中显示 ObservableCollection

    我是 WPF 新手 我发现了一些类似的问题 但不太清楚最后一部分 我有一个带有 ObservableCollection 的 ViewModel 其中包含错误消息 我想在表单上显示这些消息并允许用户选择和复制全部或部分消息 过去在 WinF
  • subprocess.Popen("echo $HOME"... 和 subprocess.Popen(["echo", "$HOME"] 之间有什么区别

    我无法得到它是 bash 相关的或 python 子进程 但结果是不同的 gt gt gt subprocess Popen echo HOME shell True stdout subprocess PIPE communicate b
  • 如何使用 JavaScript 或 HTML 将文件输入设置为空?

    在我正在开发的网站上 我有一个文件输入 用户可以从中上传文件 它使用 Ajax 不是真正的 将文件发送到绑定到 iframe 的 php 文件 我的问题是 Firefox 自动填充文件输入元素 有没有办法让用户可以选择单击提交按钮而不发送文
  • 复制绘图区域在 Powerpoint VBA 中无法正常工作

    我拼凑了以下代码 将图表的格式从一个图表复制到另一个图表 代码仍然很混乱 因为我试图想出引用图表的最佳方法 欢迎任何想法 我无法准确复制主要是绘图区域和辅助访问的格式和位置 一个页面上必须有两个图表 首先选择源 然后选择目标 目前来看 它们
  • 自动滚动 Cypress 行为导致下拉菜单在 Cypress 测试中关闭。有解决方法吗?

    Cypress 的自动滚动行为正在关闭我试图在其中选择元素的下拉列表 这会导致测试失败 因为找不到第一个下拉项 我添加的解决方法是添加第二个 click 键入输入后重新打开下拉菜单 cy get selector click force t
  • SymPy:如何根据其他表达式返回一个表达式?

    我还很陌生SymPy并提出一个可能是基本问题的问题 或者我可能只是误解了 SymPy 的使用方式 有没有办法创建一个不由原子表示而是由其他表达式组合表示的表达式 Example gt gt gt from sympy physics uni
  • 当放入结构中时,值的寿命不够长

    我正在尝试使用 Rust 中的 LLVM这个板条箱 我正在尝试创建一个代码生成器结构来为我保存上下文 模块和构建器 但是当我尝试编译时 我收到一条错误消息 c does not live long enough 我怎样才能编译它 为什么 c
  • 铸造容器 C++ [重复]

    这个问题在这里已经有答案了 可能的重复 是否可以将 Base 类型的 STL 容器转换为 Derived 类型 这应该是一个简单的问题 如果我有一个基类的容器 例如 STL 列表 是否可以将整个容器转换为子类类型 例如 A inherits
  • @Query 注释使用 like %?1%

    我想写一个这样的查询 Query select p from Product p where p name 1 or p desc like 1 但这给了我例外 org hibernate hql ast QuerySyntaxExcept
  • 这个方法如何运作?

    我经常遇到这种注册动作侦听器的方式 虽然我最近一直在使用这种方法 但我不明白这是如何以及为什么的 这是一个 submit new JButton submit submit addActionListener new ActionListe
  • 绑定到 ICollectionView 时模拟数据不显示

    如果我绑定我的ListBox到视图模型ObservableCollection或 XAML 资源CollectionViewSource 模拟数据在设计时显示 有时CollectionViewSource由于某些 XAML 更改而停止显示此