Tag: binding

如何使用RelativeSource Binding创建DataGrid绑定到Model和ViewModel?

我有一个DataGrid,它有一个DataGridTemplateColumn,它使用DataGrid的ItemsSource绑定,但是在DataGridTemplateColumn的ComboBox中,我希望能够绑定到View的ViewModel而不是ItemsSource。 ViewModel具有ModelValues属性以及myList属性。 ModelValues用于DataGrid的ItemsSource ,我想将myList用于ComboBox ItemsSource 。 我如何更改我的RelativeSource命令以便它可以工作?

在过滤CollectionViewSource期间保留SelectedItem

我有一个像这样过滤的列表框: var view = CollectionViewSource.GetDefaultView(FilterSource); view.Filter = FilterCode; 我遇到了一个问题,当filter与viewmodel代码一起使用时, SelectedItem会丢失,如下所示: VM { public ObservableCollection Items{get;set;} public Model SelectedItem { get{return _selectedItem;} set{_selectedItem = value; NotifyPropertyChanged();} } } 应用filter时, SelectedItem设置为null 。 但是,除非用户实际点击它,否则我希望保留所选项目。 如果删除filter,则仍应选择所选项目。 Model确实有一个IsSelected属性,我一直试图想办法查询IsSelected属性。 但是,视图的绑定不会像我期望的那样工作….或者至少我认为它不能

Ninject 2.0 – 绑定到多次使用相同接口的对象?

考虑以下: public Something(IInterface concreteObjectOne, IInterface concreteObjectTwo) { this.concreteObjectOne = concreteObjectOne; this.concreteObjectTwo = concreteObjectTwo; } 如何设置与Ninject绑定此类绑定? 我试着谷歌搜索这个词,但由于我不知道这叫做什么我不能,也无法在Wiki上找到任何关于此的内容。 编辑 : 我相信这被称为基于约定的绑定,如此处所述。 但是,此文档适用于版本1.0和2.0没有Only方法。 我希望这可以在没有属性的情况下实现 – 使用名称约定或类似的东西。

获取WPF Listview以使用数据绑定显示ObservableCollection

我有一个类型为Project的可观察集合,我希望在ListView中显示但是没有添加到我的ListView中,我真的不明白 我的MainWindow.xaml 我的MainWindow.cs public partial class MainWindow : Window { ObservableCollection Projects = new ObservableCollection(); ObservableCollection Employees = new ObservableCollection(); public MainWindow() { InitializeComponent(); DataContext = Projects; Project pro1 = new Project(1, “Swordfish”); Projects.Add(pro1); Employee empMads = new Employee(“Mads”, 1); Employee empBrian = new Employee(“Brian”, 2); Employees.Add(empMads); Employees.Add(empBrian); } private void ListViewProjectsSelectionChanged(object sender, SelectionChangedEventArgs e) […]

绑定到Text属性ios-unified不起作用

我将我的xamarin ios项目更新为统一API(64位支持)。 一切都按预期工作。 该项目建设和工作。 但我发现了一个问题。 绑定到UILabel.Text属性将不再起作用。 所有其他绑定仍然有效(例如,对于UIButton.Hidden属性)。 这是我的代码: // Create bindings var set = this.CreateBindingSet(); set.Bind(labelitem) // not working .For(t => t.Text) .To(v => v.MyStringValue); set.Bind(buttonitem) // working .For(b => b.Hidden) .To(v => v.MyboolValue) .WithConversion(new InverseBoolValueConverter()); set.Apply(); 我正在使用MvvmCross进行绑定。 Bevore统一更新一切正常。 首先,我尝试将链接器选项更改为“不链接”。 同样的问题。 任何人都可以解释我,发生了什么? 谢谢 编辑 调试我的项目时,我在输出中找到了一个信息: 弱目标在MvxUILabelTextTargetBinding中为空 – 跳过集

如何将ContextMenuStrip添加到ToolStripMenuItem

我希望当我点击一个菜单项时,显示一个上下文菜单,其中包含“删除”,“重命名”等项目。 右键单击菜单项时如何绑定自己的上下文菜单?

创建可绑定到DataGrid的自定义集合

我在一家建筑公司工作,我正在创建一个3D建模程序的插件,以协助设计。 我有一个Building类和一个Floor类。 该建筑包含对FloorList楼层集合的引用。 我正在试图弄清楚FloorList集合的基础,这样我就可以最大限度地减少创建界面来编辑集合所需的工作量。 Floor系列代表一系列相互堆叠的建筑楼层。 每个楼层都有一个读写的Floor.Height属性,以及一个只读的Floor.Elevation属性,并通过总计当前楼层以下的楼层高度来设置。 因此,无论何时在集合中添加,删除,移动或更改Floor,都需要更新Floor.Elevation属性。 另外,我想创建一个用于编辑此集合的UI。 我正在考虑使用DataGrid控件,其中列出每个Floor的高度和其他属性作为控件的一行。 用户应该能够使用控件添加,删除和重新排序楼层。 我希望将其设置为尽可能简单灵活。 这意味着我只想简单地将Floors集合绑定到DataGrid,并根据Floor类的属性填充DataGrid的列。 如果可能的话,我希望能够利用DataGrid控件的内置添加/删除UI界面,而不必在我的集合和DataGrid之间设置一堆事件关系。 为了使将来进一步复杂化,我需要能够允许用户动态地将自定义属性添加到我希望他们能够在DataGrid中查看和编辑的Floors 。 我想我最终会通过让Floor类实现IExtenderProvider来实现这一点。 所以最终DataGrid看起来像这样: 初始属性未来自定义用户属性 高度提升程序类型UnitType UnitCount 15’70’住宅豪宅5 15’55’住宅豪宅5 15’40’住宅预算10 20’20’零售不适用2 20’0’零售不适用3 我现在的问题是我应该将FloorList集合作为基础来实现这一function? 我正在考虑的选项如下。 1)inheritance自列表(楼层) 诸如添加/删除之类的方法不是玻璃的,因此我不能覆盖它们来更新高程 2)实施IList(楼层) OnChange事件不是内置的,所以如果列表更改,DataGrid将不会更新(我认为?) 我认为这可能是最好的选择,但我需要做什么来确保对FloorList集合或DataGrid的更改彼此同步? 3)inheritance自BindingList(Floor) 添加/删除等方法不是虚拟的,因此我无法修改它们来更新楼层高程。 4)实现IBindingList IBindinglist不是通用的,我只希望我的集合包含Floor对象

将自定义依赖项属性添加到XAML中的控制模板

经过一段时间的rest后,我已经设法进一步使用我的只读复选框,现在以合理优雅的forms提供了我想要的function。 问题是我已经使用了一些黑客来使其工作,虽然这不是一个灾难,但做得更好会更好。 回顾一下:我想要一个常规查看复选框,在单击它时不会自我检查,而是单击事件会触发后台工作程序,稍后会导致更新变量。 此变量绑定到checkbox.ischecked,然后使用新值更新。 我想在这里使用基于这个想法的控件模板: C#WPF中的只读CheckBox 我修改了这个并删除了我认为我不需要的东西(也许是不明智的)并最终得到: 这个复选框的工作方式如上所述,我这样称呼它: 我做的黑客是使用’Tag’DependencyProperty将数据绑定带到控件模板中。 这绕过了通常导致复选框自检的任何机制。 要恢复到正常操作复选框,只需将绑定更改为Tag以绑定到IsChecked,并在BulletDecorator内部将TemplateBinding设置为IsChecked而不是Tag。 所以我想我的问题是: 我有错误的结束吗? 有没有我可以覆盖任何机制导致盒子自我检查的地方? 也许在ControlTemplate Triggers中? 是否一个好主意去除我认为刚从默认CheckBox引入的任何备用XAML,或者我应该尝试保留所有样式的完全替代品? 如果我所做的不是太疯狂,我可以在XAML中添加依赖属性,这样我就不必使用Tag属性了吗? 我也想到,也许我真正想要的是一个看起来像一个复选框的按钮控件,可能是一个隐形按钮,顶部有通常的动画复选框,我将数据绑定到图形。 对该计划的任何想法也将非常受欢迎。 非常感谢 埃德

Contentpresenter,基于类型的datatemplate选择和绑定

我有一个ItemsControl绑定到项目列表。 这些项目具有名称和值属性。 value属性的类型为Object,以允许使用不同的数据类型。 要正确显示value属性,我可以为我可能使用的每种数据类型使用带有datatemplate的ContentPresenter。 ContentPresenter使用正确的数据类型并且运行良好。 我的问题是编辑这些值对绑定项没有任何影响。 我怀疑这是因为我绑定到ContentPresenter的content属性而不是直接绑定到Value。 我尝试过像这样使用ContentPresenter: 但是这样就没有选择正确的DataTemplate,它只是显示Object而不是String。 我也试图在DataTemplate的绑定中省略这样的路径: 有了这个,我得到一个exception,告诉我使用Path或XPath属性。 所以我的问题是:如何正确绑定到Value,以便使用正确的DataTemplate显示,并且任何值的编辑都将应用于绑定项。 顺便说一句,由于某种原因,我的问题格式化的代码块在第一行后缩进了很多。 我试着修理它,但我不明白发生了什么。

显示ItemsControl.ItemsSource是否为null

问候, 我有一个ItemsControl,我更改了模板,为绑定的ItemsSource中的每个对象显示一个RadioButton。 但是ItemsSource可以为空,当它为空时我想显示默认值。 像“绑定列表中没有可供您选择的项目”…… 我想到的一种方法是将ItemsControl.Visibility设置为Collapsed,并将TextBlock.Vsibility设置为Visible,显示文本..但这将包含更多数据。 如果ItemsControl.ItemsSource为null,是否可以显示默认值?