Tag: 绑定

将嵌套集合发布到Web API

我正在尝试将复杂类型的对象发布到web api。 在web api端,当方法接收到object参数时,除了从ICollection派生的集合之外,每个属性都被正确设置。 这是我的示例类: public class MyClass { private int id; public int Id { get { return id; } set { id = value; } } private MyCollection collection; public MyCollection Collection { get { return collection; } set { collection = value; } } } public class MyCollection : ICollection { public […]

绑定到ObservableCollection的列表框不会更新

我使用ObservableCollection来存储Windows的环境变量。 class VariableVieWModel { ObservableCollection vars; public ObservableCollection Variables { get { return vars; } set { vars = value; } } public VariableViewModel() { Reload(); } public void Reload() { // Code to retrieve vars } } 此ObservableCollection绑定到ListBox。 我在GUI中添加了一个按钮来重新加载变量,在点击时,它调用Reload()过程。 但是,ListBox内容不会更改,并且在调用Reload()时我无法再将项添加到列表中。 在构造函数下,一切正常。 ListBox XAML: 我尝试使用PropertyChanged作为UpdateSource触发器并设置大多数模式。 public void Reload() { vars = new ObservableCollection(); RegistryKey systemVarKey […]

如何使用Caliburn.Micro将容器绑定到MVVM标准中的listview控件?

我正在使用Caliburn.Micro库编写MVVM (C#)和XAML程序。 我想知道如何将Listview控件与List , IEnumerable或ObservableCollection等容器绑定? 查看\ MainView.xaml 的ViewModels \ MainViewModel.cs namespace ListBox_CaliburnMicro { public class MainViewModel : Screen { // … public MainViewModel() { } public class FileItem { public string FileStatus { get; private set; } public string FileName { get; private set; } public string FileSize { get; private set; } public string […]

有条件地加载WPF控件

鉴于: 我在stackpanel中有两个控件(control1和control2),而且我一次只想显示一个控件。 如代码所示,控件的可见性由“IsDateReadOnly”和“CanShowDateControl”驱动。 并且,根据我的viewmodel逻辑… CanShowDateControl =!IsReadOnly。 所以,有一段时间我只会显示两个控件中的一个。 问题:我的问题是,虽然我一次只显示一个控件,但我的xaml正在创建两个控件的实例。 是否可以创建仅显示我正在显示的控件的实例? 给那个: 1)我想使用绑定显示/隐藏,因此逻辑位于我的viewmodel中。 2)我可以将这两个控件保存在一个包装器控件中。 因为我在不同的地方使用它。 谢谢你的关注。

我可以在C#/ WPF中获取绑定对象的Type()(即使绑定值为null)?

我对未知来源有约束力。 我只有绑定。 我没有其他方法来查看绑定对象。 我需要找出绑定对象的Type,即使该值为null(这是我的问题所在)。 我通过绑定到一个对象来评估绑定,然后使用该对象作为获取Type的方法,但即使值为null,我也需要知道该类型。 例如,我有一个这样的类: public class Customer{ public string Name { get; set; } public int Age { get; set; } } 现在,如果我有一个WPF控件绑定到任何这些属性(让我们假设它们是依赖属性)我想获取属性的类型,即使该值为null。 所以,我有一个自定义控件,现在有一个Binding对象,例如代表{Binding Name}。 如何使用C#获取“绑定对象”的类型?

OneWayToSource绑定重置目标值

为什么OneWayToSource绑定重置我的目标值? 这是绑定代码: SolidColorBrush brush = GetTemplateChild(“PART_PreviewBrush”) as SolidColorBrush; if (brush != null) { Binding binding = new Binding(“Color”); binding.Source = brush; binding.Mode = BindingMode.OneWayToSource; this.SetBinding(ColorPicker.ColorProperty, binding); } 我在xaml中设置了“Color”依赖项属性。 但它会被绑定覆盖。 之后,绑定工作正常。 所以,基本上我的问题是:我不能给“Color”属性一个起始值,因为它被绑定覆盖了。 编辑: 我做了一个解决问题的解决方法,但仍然不明白为什么OneWayToSource的行为如下: System.Windows.Media.Color CurrentColor = this.Color; this.SetBinding(ColorPicker.ColorProperty, binding); this.Color = CurrentColor; 编辑2: 找到了一个可能的解决方案:我必须设置: binding.FallbackValue = this.Color;

string 和List 的不同绑定行为

当源对象是string[]和List时,我试图理解(没有成功)为什么绑定在行为上有差异。 我有两个列表,它们唯一的区别是ItemsSource – 在第二个List中的一个case 数组中: XAML代码: 代码背后: public sealed partial class MainPage : Page, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void RaiseProperty(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); public string[] ArrayElements { get; } = new string[] { “Standard”, “Standard”, “Standard” }; public List ListElements { get; } = new List { “Standard”, “Standard”, “Standard” […]

如何使用CommandParameter传递UserControl?

我使用DelegateCommand,我想通过Command传递UserControl。 #region OpenViewCommand private DelegateCommand _openViewCommand; public ICommand OpenViewCommand { get { if (_openViewCommand == null) _openViewCommand = new DelegateCommand(new Action(OpenView)); return _openViewCommand; } } public void OpenView(UserControl ViewName) { UserControl ctrl = (UserControl)ViewName; JIMS.Controls.Message.Show(ViewName.ToString()); } #endregion XAML中的命令 stock group

阻止&符号转换为Windows窗体绑定的助记符/加速器

可能重复: 在Windows窗体中的文本标签中输入“&”符号? 在标签控件绑定到用户填充属性的屏幕上,我在标签上加下划线字符(助记符),因为基础数据包含&符号。 例如,如果绑定属性包含“A&B Trucking”,则标签显示为“AB Trucking”,B带有下划线。 键盘上的Alt-B会聚焦该标签。 你如何防止绑定控件发生这种情况?

如何更改WPF中绑定选项的默认值?

在我当前的项目中,我使用了几个文本框控件,其内容由来自数据库的对象填充。 该对象使用validation来validation文本的正确插入。 当我想显示validation错误(即文本有多个字符)时,我必须向text属性添加一些绑定选项,如下一行所示: 是否可以创建模板或样式或任何将最后三个选项(ValidatesOnDataErrors,NotifyOnValidationError,UpdateSourceTrigger)的默认值更改为上面代码中的值? 文本框控件应该如下所示: