- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试验证 WPF 中的一些输入数据,并且正在使用此处所述的 DataResource 代理: http://www.wpfmentor.com/2009/01/how-to-add-binding-to-property-on.html
所以,这是我的 XAML(简化版):
<mvvm:BaseDataView
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:md="clr-namespace:Mfc.Mvvm.Master"
>
<mvvm:BaseDataView.Resources>
<ResourceDictionary>
<md:DataResource x:Key="mmSS" BindingTarget="{Binding ElementName=tbMmss,Path=Text}"/>
<md:DataResource x:Key="mmTS" BindingTarget="{Binding ElementName=tbMmts,Path=Text}"/>
</ResourceDictionary>
</mvvm:BaseDataView.Resources>
...
<TextBox x:Name="tbMmts" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="2" Grid.Column="1" Width="100" Margin="3,3,0,0">
<TextBox.Text>
<Binding Path="MTS" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<md:DoubleRangeValidationRule MinValue="10.0" MaxValue="5000.0"/>
<md:LessThanValidationRule>
<md:LessThanValidationRule.LessThanChecker>
<md:ProxyForComparisonString
CompareTo="{md:DataResourceBinding DataResource={StaticResource mmSS}}">
</md:ProxyForComparisonString>
</md:LessThanValidationRule.LessThanChecker>
</md:LessThanValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
...
<TextBox x:Name="tbMmss" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="3" Grid.Column="1" Width="100" Margin="3,3,0,0">
<TextBox.Text>
<Binding Path="STS" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<md:DoubleRangeValidationRule MinValue="10.0" MaxValue="5000.0"/>
<md:GreaterThanValidationRule>
<md:GreaterThanValidationRule.GreaterThanChecker>
<md:ProxyForComparisonString
CompareTo="{md:DataResourceBinding DataResource={StaticResource mmTS}}">
</md:ProxyForComparisonString>
</md:GreaterThanValidationRule.GreaterThanChecker>
</md:GreaterThanValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
第二个 文本框的验证工作完美,但它因第一个 文本框的 NullReferenceException 而崩溃。 DataResource 似乎没有得到初始化,调试说
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=tbMmss'. BindingExpression:Path=Text; DataItem=null; target element is 'DataResource'
有什么想法吗?谢谢!
最佳答案
您对此采取了完全错误的方法。不要使用 Freezable。他们很坏。他们不会被困在资源中并像桥梁一样被侵犯!请使用附加属性或 INotifyDataError 信息来干净且正确地解决此问题。
关于c# - WPF 绑定(bind)到 ElementName 引发 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27687199/
我的项目中有这个 xaml: // ... 我在 MyControl 类中定义了 IsEditing 依赖属性。 namespace MyNamespace { public pa
我有两个继承自 BaseClass 的子类。 我正在尝试对 BaseClass 类型 的对象使用反射来获取 XmlRootAttribute.ElementName 值。那么,如果有人传入一个 Bas
这是我的网址的一部分 Новый Афон Пицунда Гудаута Гагра Сухум 用户输入城市名称,例如:“Пицунда”,我
我创建了一个显示文件列表的 JTree。这些文件的长度不同。我想在 JTree 中以相同的长度显示它们,例如 20 个字符。如果名称大于 20 个字符,它应该出现在工具提示中。 如何实现?下面是我的
以下哪些 TextBlocks 的绑定(bind)会消耗更多性能: 我确信当 TextBlocks 处于具有许多 sibling 和祖先的高嵌套级别时,我的问
我正在对 Web 应用程序进行一些维护编码,我收到一个 javascript 错误,格式为:“[elementname] 没有属性” 部分代码是通过 AJAX 调用即时生成的,该调用更改了部分页面的
通过名称进行绑定(bind)自引用与通过 RelativeSource 进行自引用之间有什么区别? 例如: 相对 在我的项目中,它们的行为似乎相同,但我直接在窗口中使用它们。这意味着我立即更喜
我有以下 XAML: ... ...
根据x:Reference Markup Extension MSDN 页面,x:Reference References an instance that is declared elsewhere
我已将 MenuFlyout 添加到 ItemsControl.ItemTemplate 中的按钮。我也能够将当前项目绑定(bind)为 CommandParameter。现在我想将 Command
我正在使用 xml,并使用 xsd 来验证我的 xml 文件。我的 xsd 和 xml 文件太长,我可以给你其中的一部分。 XSD 文件: ...
我有一个 Datagrid,它有一个 DataGridTemplateColumn,其中包含一个 ListView,其 Itemsource 绑定(bind)到一个字符串数组。 在该 ListView
我正在尝试将类对象序列化为如下所示的 xml: 0,000 0,000 1,000 1,000 1,000 0,000 0,000 1,000 重要的是没有直
这是 XAML: 绑定(bind)返回错误:System.Windows.Data 错误:2:找不到目标元素的管理 Fram
我有两个 XSD 文件,我想要两个不同的 xsd 文件的元素具有相同的名称但具有不同的属性类型。 假设下面是xml1.xsd te
我有一个datagrid,在datagridtemplatecolumn中,我有一个togglebutton,在检查时,它会在elementName binding的帮助下打开弹出窗口。。
我想创建一个在后台执行操作并可通过托盘图标进行控制的应用程序。这个托盘图标有一个带有复选框的上下文菜单,可以将其设置为已启用,然后后台任务就会启动。 我正在使用 WPF 和 Hardcodet WPF
我正在尝试绑定(bind)一个依赖于同一 DataTemplate 中控件的属性。 举例说明:
我有一个应用程序,它让我可以选择通过 RessourceDictionary 更改应用程序主题,这意味着我只能使用纯 XAML。 现在,我想做的是隐藏一个 DockPanel,它没有 ElementN
使用传统的 {Binding} 语法时,您可以指定元素名称以指向页面上的特定控件,并能够访问其属性。例如,如果页面名为 page你可以这样做: {Binding ElementName=Page, P
我是一名优秀的程序员,十分优秀!