问题标签 [binding-expressions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WPF MVVM 绑定 Checkbox.IsChecked 到字典中的命名项
我有一组复选框,它们都代表相同类型的不同选择(例如,它们都是不同的文件类型)。我觉得将每个复选框绑定到 ViewModel 中的单个属性是多余的,我更愿意将它们全部绑定到一个集合并使用绑定语法将每个复选框按键绑定到集合中的特定项目。我试图坚持 MVVM 模式,所以我不只是想变得懒惰并处理 Checked 事件或类似的事情。
有没有办法使用 WPF 绑定语法在集合中表达路径或键?例如,如果我Dictionary<string, bool>
在 ViewModel 中将调用的 FileTypes 作为公共属性公开,是否有办法将其中一个复选框绑定到 FileTypes["aspx"]?如果我有一个更复杂的数据结构Dictionary<string, Dictionary<string, int>>
怎么办?
wpf - 将网格行的高度绑定到 WPF 中的内容
我有一个有几行的网格。在第一行,我有一个 ItemsControl,它动态绑定到一个集合并使用 DataTemplateSelector 和 ItemsPanelTemplate(带有一个水平排列的 WrapPanel)。这是我迄今为止所拥有的精简版:
我不想将第一行的高度设置为 40,而是根据 ItemsControl 必须适合其所有内容的最小高度动态设置它。由于 ItemsControl 的高度受 Grid Row 的高度限制,我无法确定我应该绑定哪个元素以及我应该将它绑定到哪个元素的属性。
将网格行的高度绑定到 ItemsControl 的“所需高度”是有意义的。因此,我找到了 DesiredSize 属性并将我的 RowDefinition 的高度绑定到 ItemsControl 的 DesiredSize.Height。这在它第一次加载时有效,但在我调整控件大小时不会更新(请记住,我使用 WrapPanel 作为我的 ItemsPanelTemplate,所以当我调整窗口大小时,ItemsControl 的高度应该会改变)。
有谁知道绑定框架是否支持这种情况,或者我是否需要添加事件处理程序代码来完成此操作?
谢谢。
c# - 绑定到 itemtemplate 中的字典
我有一个列表<字典<字符串,字符串>>。在我的 GridView 的 ItemTemplate 中,我想根据它们的键绑定到字典中的值。
有没有在不使用代码的情况下做到这一点?我只想在添加字典中的新键时更改 ItemTemplate。
c# - BindingExpression.UpdateSource 吞下异常
以下代码片段是我的问题的简化版本。基本上,我试图在调用 updatesource 时捕获我的 setter 中发生的错误,并将其传播到下面显示的 catch 块。问题是,如果 updatesource 下面的调用堆栈中发生异常,BindingExpression.UpdateSource() 似乎会捕获该错误并进行处理。我无法让异常返回到我的 catch 语句中。可以禁用此行为吗?
///////////////////////////////////////// ///////////////
silverlight - 我可以检测 Silverlight 中的绑定更改吗?
有没有办法检测绑定何时更改?我不是在问值,我指的是绑定表达式本身。
wpf - TextBox BindingExpression UpdateSourceTrigger=Explicit
需要 ListView DataTemplate 中的 TextBox 来调用 LostFocus 上的 set 或输入键。使用 UpdateSourceTrigger = Explicit 和 LostFocus 和 KeyUp 的事件。问题是我无法获得对 BindingExpression 的有效引用。
XAML
代码不工作
be 为空。我试过 ListView.SelectedValueProperty 和 ListView.SelectedPathProperty。如果它尝试 tbExistingValue 它会失败并显示“不存在”消息,甚至不会编译。如何获得正确的 BindingExpression?谢谢。
如果我设置 UpdateSourceTrigger = LostFocus 并删除它确实调用设置正确的事件处理程序。那里有一个有效的双向绑定。我只是无法使用显式获得对 BindingExpression (be) 的有效引用。
它适用于直接在页面上的文本框(在网格单元中)。下面的 xaml 有效:
此 BindingExpression 工作正常:
c# - GetBindingExpression 在 Loaded 事件中返回 null
我试图在 Loaded 事件中调用 GetBindingExpression 方法,但它总是返回null
.
这是预期的行为,还是我做错了什么?如果它是预期的,在什么事件之后绑定表达式变得可用?
我只是创建自定义控件
并在 xaml 中使用此控件
现在我想在控件初始化该方法返回 null 时获取绑定表达式:
binding - BindingExpression路径错误itemtemplate
我在 TabControl 中使用以下 ItemTemplate 来设置选项卡项的内容和选项卡项的前景色。这两个属性在同一个 ViewModel 类中可用:
至于“名称”属性,一切都按预期工作。修改属性时,选项卡项上的名称会更改。但是对于“颜色”属性,这不起作用。我不断得到
System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“字符串”(HashCode=2145491359)上找不到“颜色”属性。绑定表达式:路径=颜色;DataItem='String' (HashCode=2145491359); 目标元素是'ContentPresenter'(名称='');目标属性是“前景”(类型“画笔”)
将 TextElement.Foreground 设置为恒定颜色(例如“白色”)时,它可以工作。
我的绑定有什么问题?
c# - binding expression error: property not found on object
I've WPF
applcation in which I usedDataBinding
for a comboBox
. ProjectName from projectList should add inside my comboBox
, but when I run the app, every time I get these errors;
System.Windows.Data Error: 40 : BindingExpression path error: 'projectList' property not found on 'object' ''DayView' (Name='MainWin')'. BindingExpression:Path=projectList; DataItem='DayView' (Name='MainWin'); target element is 'ComboBox' (Name=''); target property is 'ItemsSource' (type 'IEnumerable') System.Windows.Data Error: 40 : BindingExpression path error: 'selectedProjectid' property not found on 'object' ''ComboBox' (Name='')'. BindingExpression:Path=selectedProjectid; DataItem='ComboBox' (Name=''); target element is 'ComboBox' (Name=''); target property is 'SelectedValue' (type 'Object')
My xaml code where I use Data Binding is:
Code behind is:
c# - 从 Binding 表达式中获取 Dependecy 属性
我有一个绑定表达式对象:
我想获得 Dependecy 属性。
例如,如果bindingExpression
是我想要获取的 TextBox 的文本TextBox.TextProperty
,等等。
这可能吗?