binding 相关问题

这个标签在不同的环境中意味着不同的东西;考虑使用较少模糊的标签来代替或另外。常见含义包括:依赖项注入和数据绑定到对象和应用程序组件之间的绑定。

通用绑定扩展返回等效警告

下面的代码给了我一个警告: 相同类型的要求使得泛型参数“Tagger”和“Value”等效;这是 Swift 6 中的一个错误 虽然这仍然有效,但我宁愿摆脱......

回答 1 投票 0

捕获 WPF 运行时 BindingExpression 错误

我们都可以在 Visual Studio 输出窗口中看到运行时 BindingExpression 错误。但是我们可以在运行的应用程序本身中捕获这些事件吗?我听说 WPF 跟踪...这有什么作用吗...

回答 3 投票 0

为什么我无法像在 XAML 上那样在代码后面绑定 StringFormat?

这是我的工作示例,它正确绑定了 ViewModel 并正确触发了 StringFormat 和 ValidateMaskDecimal: 这是我的工作示例,它正确绑定了 ViewModel 并正确触发 StringFormat 和 ValidateMaskDecimal: <ListBox x:Name="Difetti" ItemsSource="{Binding Difetti}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBox x:Name="Metro" controls:TextBoxHelper.Watermark="Metro" PreviewTextInput="ValidateMaskDecimal"> <TextBox.Text> <Binding Path="Metro" StringFormat="{}{0:0.0##########}"> </Binding> </TextBox.Text> </TextBox> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 现在,如果我尝试在后面的代码中执行类似的操作(删除 ListBox,并将唯一的 TextBox 绑定到某个特定 index = 0 处的数据模型): <TextBox x:Name="Metro" controls:TextBoxHelper.Watermark="Metro" PreviewTextInput="ValidateMaskDecimal" /> var data = DataContext as ViewModelData; if (data != null && data.Difetti.Count > 0) { int difettoIndex = 0; Metro.SetBinding(TextBox.TextProperty, new Binding { Source = data, Path = new PropertyPath($"Difetti[{difettoIndex}].Metro"), StringFormat = "{}{0:0.0##########}" }); } 它会抛出 ValueStringBuilder 的 ThrowFormatError 异常: System.FormatException: '输入字符串的格式不正确。'. 我不明白为什么。 我哪里错了?代码不应该给我同样的结果吗? DataModel 上的 Metro 以这种方式配置(可空 decimal): private decimal? metro; public decimal? Metro { get { return metro; } set { SetField(ref metro, value, "Metro"); } } 字符串格式前缀的 {} 特定于 XAML。您在代码中不需要它。 当然,您可以检查在XAML中创建的字符串格式文本。 BindingExpression expression = BindingOperations.GetBindingExpression(Metro, TextBox.TextProperty); string format = expression.ParentBinding.StringFormat; Debug.WriteLine(format);

回答 1 投票 0

对象在应该定义它的 OnInit 之后保持未定义状态

我有一个包含大量对象的父组件: 导出常量 myWalls: MyWall[] = [ { 标志:“棉花糖”, 照片1: '资产\墙壁.jpg', photo2: '资产\1.jpg', 照片...

回答 1 投票 0

文本已绑定到对象,但没有显示任何内容?

我在文本字段上有一个绑定,如下所示: 我在文本字段上有一个绑定,如下所示: <Label Grid.Row="1" Grid.Column="1" FontFamily="FontCamptonMedium" FontSize="12" Text="{Binding CurrentBooking.FullName}" TextColor="Black" /> 在此页面的代码隐藏中,我们使用依赖注入来绑定到相应的视图模型,如下所示: public AppointmentPendingResponse(BookingViewModel viewModel): base(viewModel) { InitializeComponent(); BindingContext = viewModel; } 我们绑定的这个视图模型继承自另一个基本视图模型,就像这样...... public partial class BookingViewModel : BaseViewModel ...依次声明如下: public abstract partial class BaseViewModel : ObservableObject, IQueryAttributable, INotifyPropertyChanged 在基础视图模型中,我们实现以下内容以利用 inotifypropertychanged: public event PropertyChangedEventHandler PropertyChanged; protected bool SetProperty<T>(ref T backingStore, T value, [CallerMemberName] string propertyName = "", Action onChanged = null) { if (EqualityComparer<T>.Default.Equals(backingStore, value)) return false; backingStore = value; onChanged?.Invoke(); OnPropertyChanged(propertyName); return true; } protected void OnPropertyChanged([CallerMemberName] string propertyName = "") { var changed = PropertyChanged; if (changed == null) return; changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); } 在 bookingviewmodel 中,我们然后像这样填充 CurrentBooking 属性: CurrentBooking = (BookingModel)selected; 生成的 json 如下所示: {\"FullName\":\"LAWMAN\",\"IdentityNo\":\"123\",\"Relation\":\"SELF\"} 我能够获取 json 数据意味着 CurrentBooking 不应该为空。那么为什么我的标签文本没有被填充?我不确定我在这里缺少什么。 编辑:好的,我更改了 bookingmodel(CurrentBooking 的对象类型)来实现 ObservableObject: public partial class BookingModel: ObservableObject { [ObservableProperty] private string _FullName; 并且全名仍然不显示。 Edit2:@klaus-gütter 是的,这是一张图片: 好吧,我找到了答案。这实际上太愚蠢了。包含边框的高度太短,以至于它实际上切断了我试图显示的所有文本。 添加了以下内容,现在一切都很好: HeightRequest="500" 呜呜😅

回答 1 投票 0

如何在 C# 中处理到 Xaml 的动态绑定

我正在尝试通过从 viewmodel.cs 启动来动态更新我的 xaml 程序上的绑定 由于某种原因,我无法在我的 CS 中的 label.content 上显示绑定: 每次我跑步的时候,eit...

回答 1 投票 0

WPF:基于列索引的绑定

在 WPF 中,如何基于 DataGrid 单元格的列索引创建数据触发器?我可以访问该列,但该列只有 DisplayIndex 可用,而不是真正的索引。我需要设计风格...

回答 2 投票 0

根据启用值更改 Maui Android 中按钮的颜色文本

我在 Maui Android 的弹出窗口中有一个按钮,它具有到 IsEnabled 属性的绑定。我创建了一个转换器,以便在 IsSignButtonEnabled 属性为 1 或 0 时更改文本颜色。 ...

回答 1 投票 0

关于在 SwiftUI 列表中使用 ForEach 进行绑定的困惑

问题描述 我正在开发 SwiftUI 应用程序,并遇到了一个与列表中的 ForEach 循环中的绑定相关的有趣问题。我的困惑在于绑定传递给

回答 1 投票 0

Laravel 路由模型与自定义键绑定

我在 laravel 11 中遇到路由模型绑定问题。无论我尝试什么,响应始终保持为空。 我有什么 我有一个看起来像这样的数据库表: * ---------------...

回答 1 投票 0


将字段绑定到数据库并在XamDataGrid中显示它们

早上好 我在将我的字段(所有 XamComboBoxEditors)绑定到 XamDataGrid 时面临着一个非常大的问题 在我的数据库中有 2 个表: 帐户 公共 int AccountId { 获取;放; } p...

回答 2 投票 0

为什么我的自动完成文本框事件 TextChanged 在 VB.NET 中运行得这么慢

我正在尝试使用文本框事件 TextChanged 自动完成,但使用 VB.NET 运行速度很慢。 虽然只有6条记录,我的代码有问题吗,请指导我。 我附上了一份gi...

回答 1 投票 0

标签内容上的 WPF StringFormat

我想将字符串绑定格式化为 Amount is X,其中 X 是绑定到标签的属性。 我见过很多例子,但以下不起作用: 我想将字符串绑定格式设置为 Amount is X,其中 X 是绑定到标签的属性。 我见过很多例子,但以下不起作用: <Label Content="{Binding Path=MaxLevelofInvestment, StringFormat='Amount is {0}'}" /> 我也尝试过这些组合: StringFormat=Amount is {0} StringFormat='Amount is {}{0}' StringFormat='Amount is \{0\}' 我什至尝试将绑定属性的数据类型更改为 int、string和 double。似乎什么都不起作用。这是一个非常常见的用例,但似乎不受支持。 这不起作用的原因是 Label.Content 属性的类型为 Object,并且 Binding.StringFormat 仅在绑定到 String 类型的属性时使用。 发生的事情是: Binding 正在对您的 MaxLevelOfInvestment 值进行装箱并将其存储为 Label.Content 属性作为装箱的十进制值。 标签控件有一个包含 ContentPresenter 的模板。 由于未设置 ContentTemplate,因此 ContentPresenter 会查找为 DataTemplate 类型定义的 Decimal。当它找不到时,它会使用默认模板。 ContentPresenter 使用的默认模板通过使用标签的 ContentStringFormat 属性来呈现字符串。 有两种可能的解决方案: 使用 Label.ContentStringFormat 而不是 Binding.StringFormat,或者 使用 String 属性(例如 TextBlock.Text)而不是 Label.Content 这里是如何使用Label.ContentStringFormat: <Label Content="{Binding Path=MaxLevelofInvestment}" ContentStringFormat="Amount is {0}" /> 以下是如何使用 TextBlock: <TextBlock Text="{Binding Path=MaxLevelofInvestment, StringFormat='Amount is {0}'}" /> 注意:为了简单起见,我在上面的解释中省略了一个细节:ContentPresenter实际上使用了自己的Template和StringFormat属性,但在加载过程中,它们会自动模板绑定到ContentTemplate和ContentStringFormat属性Label,所以看起来 ContentPresenter 实际上正在使用 Label 的属性。 制作一个通用的StringFormatConverter : IValueConverter。将格式字符串传递为 ConverterParameter. Label Content="{Binding Amount, Converter={...myConverter}, ConverterParameter='Amount is {0}'" 此外,当格式字符串中需要多个对象时,请使用 StringFormatMultiConverter : IMultiValueConverter,例如 Completed {0} tasks out of {1}。 我刚刚检查过,由于某种原因它不适用于 Label,可能是因为它在内部使用 ContentPresenter 来表示 Content 属性。您可以使用 TextBlock 来代替,这样就可以了。如果您需要继承样式、行为等,您也可以将下面的 TextBlock 摘录放在 Label 的内容中。 <TextBlock Text="{Binding Path=MaxLevelofInvestment, StringFormat='Amount is \{0\}'} /> 尝试使用转换器...... <myconverters:MyConverter x:Key="MyConverter"/> <Label Content="{Binding Path=MaxLevelofInvestment, Converter={StaticResource MyConverter"} /> public class MyConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return String.Format("Amount is {0}", value); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value; } }

回答 4 投票 0

具有多个“数据切换”的引导程序控制

有没有一种方法可以通过“数据切换”将多个事件分配给引导程序控件? 例如,假设我想要一个具有“工具提示”和“按钮”切换的按钮

回答 15 投票 0

ERR_EMPTY_RESPONSE 与 docker 容器端口绑定

我已经安装了 vuejs3 并使用 node:latest 镜像在 docker 容器内 npm run dev 它。非常基本。 在容器内,它肯定是从 http://localhost:5173 开始的,因为我可以通过curl 得到响应

回答 1 投票 0

x:将嵌入页面绑定到WinUi 3中的父窗口视图模型

我正在制作欢迎屏幕,它可以导航使用主窗口中的“框架”控件显示的 5 个页面。 现在我需要 x:bind 一些控件到主窗口的视图模型,因为我......

回答 1 投票 0

Angular:双向绑定和事件绑定不起作用

我对 Angular 非常陌生,正在通过 Heroes 教程进行学习。我负责双向绑定。我已经学习了所有不同的绑定类型并尝试实现它们。

回答 1 投票 0

当 DataMember 名称与属性名称不同时,将传入的 JSON 绑定到模型

我有这个模型类,它是通过向 .NET 4.5 Web API 控制器发送 POST 请求来自动填充的。 [可序列化] [数据合同(名称=“消息”)] 公开课留言{...

回答 1 投票 0

MVVM - 当绑定属性不存在时隐藏控件

我想知道如果视图模型中不存在控件绑定的属性,是否可以隐藏视图上的控件。例如,如果我有以下内容: 我想知道如果视图模型中不存在控件绑定的属性,是否可以隐藏视图上的控件。例如,如果我有以下内容: <CheckBox Content="Quote" IsChecked="{Binding Path=IsQuoted}" /> 我可以在 XAML 中检测到视图模型上不存在 IsQuoted 属性,并简单地隐藏该实例中的控件吗? 我本质上是创建一个向导对话框,该对话框在视图模型集合中移动,显示每个视图模型的关联视图。对于集合中的某些视图模型,将存在“IsQuoted”属性,而对于某些视图模型则不存在。 我希望在这些视图之外有一个复选框,当当前视图模型具有该属性时显示,当视图模型不具有该属性时隐藏。所有视图模型都派生自一个公共基类,但我不想通过添加“ShowQuoted”属性等来弄乱基类。 想法?并且,预先感谢... 使用始终返回 Visibility.Visible 的转换器来处理该值存在的情况。通过指定回退值来处理该值不存在的情况。当该属性不存在时,绑定失败并接收后备值。 <Page.DataContext> <Samples:OptionalPropertyViewModel/> </Page.DataContext> <Grid> <Grid.Resources> <Samples:AlwaysVisibleConverter x:Key="AlwaysVisibleConverter" /> </Grid.Resources> <CheckBox Content="Is quoted" IsChecked="{Binding IsQuoted}" Visibility="{Binding IsQuoted, Converter={StaticResource AlwaysVisibleConverter}, FallbackValue=Collapsed}" /> </Grid> public class OptionalPropertyViewModel { public bool IsQuoted { get; set; } } public class AlwaysVisibleConverter : IValueConverter { #region Implementation of IValueConverter public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return Visibility.Visible; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } #endregion } 我修改了Phil的答案以使TargetNullValue起作用: public class AlwaysVisibleConverter : IValueConverter { public object? Convert(object? value, Type targetType, object parameter, CultureInfo culture) { if (value is null) { // Makes TargetNullValue work. // Apparently TargetNullValue doesn't look at the target directly, but through this converter. return null; } return Visibility.Visible; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } 并且: <CheckBox Content="Is quoted" IsChecked="{Binding IsQuoted}" Visibility="{Binding IsQuoted, Converter={StaticResource AlwaysVisibleConverter}, FallbackValue=Collapsed TargetNullValue=Collapsed}" />

回答 2 投票 0

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