问题标签 [markup-extensions]
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 UserControl 中按钮的启用状态的条件 DataTrigger
我创建了一个 UserControl 用作数据导航器。我在此控件中定义了两个 DependencyProperties,如下所示(隐含 DependencyProperty):
然后,我放置了四个按钮来执行基本的导航操作(第一个、上一个、下一个、最后一个)。每个按钮都有以下样式:
这个触发器所做的就是检查 DataCollection DependencyProperty 是否为空,假设将 RelativeResource TemplatedParent 作为每个按钮的 DataContext 传递,如下所示:
然后我创建了以下 MarkupExtension 来比较值并根据比较操作和比较值返回 true 或 false:
最后,我用这个 ME 测试了每个按钮的“启用”条件。这是第一个按钮的条件:
不幸的是,这个解决方案没有奏效。我不断收到这个设计时异常:
InvalidOperationException:无法获取不属于视图树的 ViewNode 的 NodePath。
有没有人有更好的解决方案?也许我想在这里用大炮杀死一只苍蝇。:)
提前致谢。爱德华多·梅洛
wpf - 数据触发器中的标记扩展
为了翻译我的 WPF 应用程序,我使用了一个返回绑定对象的标记扩展。这允许我在应用程序运行时切换语言。我像这样使用这个标记:
我想通过数据触发器更改按钮文本:
这会导致以下异常:
不能在“Setter”类型的“Value”属性上设置“Binding”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。
好的,这对我来说很有意义。我试图在我的资源中定义 TextBlock 并{StaticResource MyResource}
在 DataTrigger 的 Setter 值中使用。但是当我这样做时,我的 Button 的样式没有正确应用......
如何使用我的标记扩展并更改按钮上的文本,而不破坏按钮内的字符串样式?
wpf - 派生自 Binding 类 (Silverlight 4.0)
使用现有的Binding
类,我们可以编写,
所以我们可以写任何东西作为电子邮件;本身没有有效性检查Binding
。我开始写一个BindingMore
派生的类,Binding
以便最终我可以写,
some or which 将被触发以SomeMethod
验证. 这是我的目标,我还没有写出来。 ICommand
delegate
Email
到目前为止,我只写了这段代码,
所以,在这个阶段,BindingMore
完全等同于Binding
,但是当我写
它给了我运行时错误。但是当我写的时候,
它工作正常。谁能告诉我为什么在第一种情况下会出现运行时错误?
不幸的是,没有显示错误。它显示的只是:
此外,我从 XAML 收到以下错误消息(即使它完美构建并运行(在第二种情况下)):
类型 'local:BindingMore' 用作标记扩展,但不是从 MarkupExtension 派生的。
wpf - WPF:在 VS2010 中使用自定义标记扩展时的空格键问题
我们在 VS 2008 中使用自定义标记扩展开发了一个本地化解决方案。
当时,我们是这样使用它的:
(注意 DefaultText 中的空格)。(还要注意 StackOverflow 的文本颜色工具如何改变单词的颜色)。
但它工作正常并且编译没有问题。
但是在 VS 2010 中,每当您尝试使用这种实现标记扩展的方式键入空格时,IDE 总是会为您添加一个逗号,它给出:
当然,它不再编译了...
一种解决方案是以另一种方式实现此标记扩展:
但它增加了很多行,而且我们没有你想象的只有一个文本块......
另一种解决方案是不输入空格,而是复制另一个空格并粘贴(在 VS 2010 中仍然可以编译,但相当粗糙)。
在我看来,我们的解决方案并不是最佳实践。
你会建议什么样的最佳实践能够在没有不便的情况下键入空格?
感谢您的见解。
wpf - WPF,本地化:重新评估控制值
我正在对 WPF 中的本地化方法进行一项小型研究。我听说了带有标记扩展的想法:
<Label Content="{local:Translate {-- label ID here --}}" />
我非常喜欢这个解决方案:它非常容易实现并且看起来非常灵活。然而,我有一个担忧。假设用户在运行时更改了语言环境。如何确保重新评估本地化属性以匹配新语言?
wpf - WPF 在所有控件旁边显示小数字
我有很多 FrameworkElements(TextBlock、CheckBox、ListBox..),我想做一些东西,让我可以在每个控件之外显示一个小数字。
一些文字³
我想到了写一个 MarkupExtension,我可以像这样写那个数字:
然后以某种方式将其添加到控件的模板中。
但我敢肯定,你们对这个问题有更好的解决方案;)
wpf - 如何使 Resharper 解析 CustomBinding MarkupExtension 的路径
我想创建一些扩展的 Binding-Markup-Extension,它的行为就像普通的 WPF 绑定,但做的更多(使用不同的默认值,可能添加一些行为等)。代码如下所示:
包括 XAML-intellisense 在内的一切都可以正常工作,只是我无法让 Resharper 正确解析我的 Binding-Path。即:使用此代码,我可以 [Strg]+单击“CurrentText”,Resharper 让 vs2010 导航到定义 CurrentText-Property 的代码。
但是使用在运行时正常工作的绑定,当悬停“CurrentText”时,我只得到一个工具提示,告诉我它是一些“MS.Internal.Design.Metadata.ReflectionTypeNode”,并且没有通过 [Strg]+Click 导航。
我尝试了以下事情:
我还查看了原始类 Binding 和 BindingBase,但找不到与我的代码有任何不同的地方。任何想法在这里应该有什么帮助?或者这只是对我自己的 MarkupExtensions 无法获得的 Binding-MarkupExtension 的特殊处理?
更新 16.03.2011:也可能是 Resharper 的错误或缺陷,Jetbrains 正在调查该问题:http: //youtrack.jetbrains.net/issue/RSRP-230607
10.12.2013 更新:同时,该功能似乎正在运行(使用 R# 7.1.3,可能还有早期版本),我实际上使用了 BindingDecoratorBase 的方法,我非常喜欢它。如果您的 MarkupExtension 以“Binding”结尾,也许它只有效,但我的有效,所以我很高兴。
c# - .net 4.0 标记扩展 WPF
我又带着另一个恼人的问题回来了。问题出在 .net 4.0 框架中,TargetProperty 类型转换似乎有一些问题,这在 msdn 论坛中也有报道。我已经提出了我在这里使用的代码。有人可以建议我一个解决方案吗?
谈到这个问题的 MSDN 链接粘贴在下面: http ://social.msdn.microsoft.com/Forums/en/wpf/thread/931d7bff-90b6-4a70-bb0b-3a097e1301a1
wpf - 在 XAML 中使用标记扩展填充集合属性失败
我正在尝试使用标记扩展提供的值填充集合(列表)属性。如果提供集合的属性具有公共设置器,则执行此操作会出现问题。我认为这是 XAML 实现中的一个错误(使用 .NET 3.5),但我不确定。
考虑以下测试类
和下面的标记扩展,它只提供一个字符串。
现在以下测试用例都可以正常工作:Hurz
但是这个测试用例失败了:
失败的情况会引发一个异常,指出“字符串”不能转换为“列表”。有没有解释为什么这会失败,因为类似的情况 d) 和 c) 工作正常?