data-binding 相关问题

将两个数据/信息源绑定在一起并使它们保持同步的一般技术。

如何从 ListView 中引用 ViewModel 属性作为转换器参数?

在我的演示 .NET MAUI 应用程序中,我有这个模型: 公开课人 { 公共字符串名称 { 得到;放; } 公共字符串电子邮件 { 得到;放; } } 这是我的视图模型: 公开课 MainViewMo...

回答 0 投票 0

绑定另一个视图模型中的视图模型的问题

要显示一对一相关的两个表的信息,我需要实现视图模型如下: 公共类 EstateViewModel { 公共长 ID { 得到;放; } 公共字符串 N...

回答 0 投票 0

WPF DataGrid - DataGridTextColumn decimal/double/float input with PropertyChanged

我在使用 UpdateSourceTrigger=PropertyChanged 的 DataGridTextColumn 中输入十进制(双精度/浮点数)时遇到问题。 (1) 我搜索了几个网站,很多人建议将其更改为 LostFocus ...

回答 3 投票 0

如何绑定详情页?

我是 C# 和 .net MAUI 的新手,在数据绑定方面遇到了一些麻烦。 我有两个页面: 带有 CollectionView 列表的 ClassesList ClassDetails 接收对象显示细节 我把两个绑起来

回答 0 投票 0

DataGrid 的某些单元格不显示内容,除非双击

我正在使用 C# 在 WPF 应用程序中创建绑定的 DataGrid,绑定工作正常,就像我在 observablecollection 列表中添加或删除对象一样。但是,在编辑...的属性时...

回答 1 投票 0

绑定在 MVVM WPF C# 应用程序中的用户控件内时找不到文本框

我有两个带有自定义验证的文本框,一个在主窗口中,一个在用户控件中。在这两种情况下,验证错误都会正确显示。我正在尝试仅启用“确定”按钮...

回答 1 投票 0

是否可以将日期类型的输入绑定到 .NET 中字符串类型的 C# 属性?

在 .NET 7.0 MVC 项目中,我想知道是否可以将日期类型的输入值(如 04/26/2023)直接获取到字符串类型的属性(如“04/26/2023”)中. 例子: HTML ...

回答 0 投票 0

如何从我的代码中删除 Android 视图的 ButterKnife 绑定?

我正在寻找一种从代码示例中删除 butterknife 的简单方法。 我为 Android Studio 找到了这个插件:RemoveButterKnife https://github.com/u3shadow/RemoveButterKnife 这很容易......

回答 1 投票 0

如何按照 MVVM 模式在 MAUI 应用程序中保留数据

我已经设置了一个新的 MAUI 应用程序,并开始为 MVVM 模式构建应用程序,其中包含一个用于视图、视图模型和模型的文件夹。仅包含 App.xaml 和

回答 1 投票 0

SwiftUI View 的手动更新

传统上,SwiftUI 应用程序会自动更新其视图以响应任何状态更改。当 @State propertyWrapper 检测到任何更新时,就会发生这种情况。我很好奇,有没有可能...

回答 2 投票 0

如何绑定到 MAUI Xaml MVVM 中的嵌套属性

我有一个简单的属性,我通过 AddSingleton 将依赖项注入到我的应用程序中,但是当我绑定到 xmal 时 - 它不绑定。我用一个简单的字符串和字符串道具测试了它......

回答 0 投票 0

绑定到附加属性

我写了一个附加属性,其中存储了帮助文本。 此帮助文本显示在主窗口的右侧。这很好用。 现在,我想为每个公司添加一个工具提示...

回答 2 投票 0

Elevation 不适用于 ConstraintLayout 中的 include 标签

Elevation 在 ConstraintLayout 中不起作用,并且按钮始终显示在全屏进度的前面...... 这是一个示例代码,原始代码要大得多所以请不要建议使用 FrameLay ...

回答 0 投票 0

Xamarin 表单 - 从其他 .cs 文件调用变量

我正在 Xamarin Forms 中做一个问答游戏,对于评分功能,如果用户得到正确答案,我想将 1 添加到分数中。但就我而言,即使答案正确,分数也不是

回答 2 投票 0

C# WPF 中 DataTrigger 和 MultiDataTrigger 中的进入和退出动作动画问题

我想实现以下目标: 如果 ShowGrid = false,则 Border.Padding = "0 0 0 0",否则 Border.Padding = "0 0 0 40" 如果 ShowGrid = true 且 IsMouseOver = true,则 Border.

回答 1 投票 0

ComboBox 不会在 DataSource 更改时自动更新?

出于某种原因,当从 DataSource(一个简单的 BindingList)中添加或删除项目时,ComboBox 会相应更新,但如果我像这样编辑项目,它不会自动更新: 我的绑定L ...

回答 3 投票 0

How to send Maui XAML Bound value to parameter in code-behind C# Converter?

我需要绑定到 Maui XAML 中的几个自定义转换器,这些转换器只是以非常复杂的方式格式化字符串。 我在 C# 代码隐藏中创建了一个测试转换器,可以看到它被调用但我不能...

回答 1 投票 0

使用 TextChanged-Event 防止绑定循环

我在我的 .NET MAUI 应用程序的 XAML 中有一个实现了 TextChanged-Event 的条目。 我想防止一个空的 Entry-Text 并在它为空时设置“0”。 所以,在 TextChanged-Event 中,我分配了我的 ....

回答 1 投票 0

如何在不调用所有对象的 c'tor 的情况下对列表框 ItemSource 进行排序? WPF

我有以下列表框 我有以下列表框 <ListBox SelectionMode="Extended" ItemsSource="{Binding Containers}" AllowDrop="True" Margin="0,0,5,0"> <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="IsSelected" Value="{Binding Content.IsSelected, Mode=TwoWay, RelativeSource={RelativeSource Self}}"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <ContentPresenter/> </ControlTemplate> </Setter.Value> </Setter> </Style> </ListBox.ItemContainerStyle> <ListBox.ItemTemplate> <DataTemplate DataType="{x:Type vm:ContainerViewModel}"> <local:ContainerUserControl DataContext="{Binding}" /> </DataTemplate> </ListBox.ItemTemplate> <ListBox.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel IsVirtualizing="True" VirtualizationMode="Recycling" /> </ItemsPanelTemplate> </ListBox.ItemsPanel> ContainerUserControl 是具有扩展器(带有标题和内容)的用户控件。 视图模型是 ContainerViewModel 绑定的物品来源为: private ObservableCollection<ContainerViewModel> _containers; public ObservableCollection<ContainerViewModel> Containers { get => _containers; set { _containers = value; OnPropertyChanged(); } } 问题是当我为容器分配新集合时,每个元素的构造函数都被调用: public partial class ContainerUserControl : UserControl { public ContainerUserControl() { InitializeComponent(); Debug.Print("in ContainerUserControl"); } } 如果我有几千件物品,可能需要很长时间。 现在假设我有 10k 个项目,我想使用以下代码对这个集合进行排序: Containers = new ObservableCollection<ContainerViewModel>(Containers.OrderByDescending(i => i.Name)); 我会看到用户控件构造函数被调用了 10k 次。 在阅读了一些帖子后,我决定使用“移动”方法实现就地排序,但不幸的是,即使我这样做了: _containers.Move(0, 1); 我看到我通过了 userControl c'tor。如果我有数千个移动操作,就像使用 orderby 方法并分配排序列表一样。 此外,我尝试创建一个新的排序集合并在 itemsSource 之间切换,但它没有帮助,仍然输入 c'tor 10k 次。 public ObservableCollection<ContainerViewModel> SortedContainers { get; set; } // already sorted public ListBox ContainerListBox { get; set; } // the listbox from xaml ContainerListBox.ItemsSource = null; ContainerListBox.ItemsSource = SortedContainers; 无论我尝试什么,我都无法避免 c'tor 被调用数千次并造成可怕的性能问题。 我怎样才能避免 c'tor 打电话?为什么这个 c'tor 无论如何都被称为? 任何帮助将不胜感激:) ListBox使用UI虚拟化。它不会加载所有项目。只有那些在虚拟化视口内的。因为默认情况下启用虚拟化,所以覆盖 ListBox.ItemPanel 是多余的。 同样适用于 DataTemplate 内的 DataCContext 绑定:DataContext(或一般父元素)的 DataTemplate 是隐式继承的。无需明确设置。 在您的情况下,所有项目都已加载,因为您的ListBox没有高度限制。它会自动拉伸以使所有项目适合。要启用 UI 虚拟化,请为 ListBox 分配一个 Height,以便 ScrollViewer 可以工作。 ScrollViewer 对于 UI 虚拟化是必不可少的。 高度可以显式设置,例如通过设置 ListBox.Height 属性或隐式设置,例如通过将 ListBox 添加到 Grid,其中行高设置为除 Auto 以外的任何值。 此外,您不应替换源集合。过滤、排序和分组是通过修改“CollectionViewthat is bound to theItemsControl. In WPF the binding engine will automatically use the default ColectionViewto display the items. This allows you to modify the displayed items without modifying the original underlying collection. For example, sorting aCollectionView”完成的,不会对底层集合进行排序。 你用静态的CollectionViewSource.GetDefaultView方法获取默认的CollectionView: <ListBox ItemsSource="{Binding Containers}" VirtualizingPanel.VirtualizationMode="Recycling" Height="300"> <ListBox.ItemTemplate> <DataTemplate DataType="ContainerViewModel"> <ContainerUserControl /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> private ObservableCollection<ContainerViewModel> _containers; public ObservableCollection<ContainerViewModel> Containers { get => _containers; set { _containers = value; OnPropertyChanged(); } } private void SortContainersByName() { var sortDescription = new SortDescription(nameof(ContainerViewModel.Name), ListSortDirection.Ascending); ICollectionView containersView = CollectionViewSource.GetDefaultView(this.Containers); // Apply sorting criteria containersView.SortDescriptions.Add(sortDescription); } private void ClearSortContainersByName() { SortDescription sortDescriptionToRemove = this.DataGridItemsView.SortDescriptions .FirstOrDefault(sortDescription => sortDescription.PropertyName.Equals(nameof(ContainerViewModel.Name), StringComparison.Ordinal)); ICollectionView containersView = CollectionViewSource.GetDefaultView(this.Containers); // Clear sorting criteria containersView.SortDescriptions.Remove(sortDescriptionToRemove); }

回答 1 投票 0

如何智能地创建和调试嵌套堆栈布局的复杂 Maui 数据绑定?

我一直在尝试创建一个数据绑定来访问父堆栈布局中的值。 我创建了一个转换器,认为这可以让我了解我的绑定在做什么。

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.