问题标签 [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.

0 投票
2 回答
924 浏览

c# - “System.Windows.Data.MultiBinding”不是属性“Text”的有效值

我正在尝试编写一个自定义MarkupExtension,允许我使用自己的机制来定义绑定,但是当我尝试MultiBinding从我的返回 a 时,MarkupExtension我得到了上述异常。

我有:

CustomMarkup返回 a MultiBinding,但显然Text不喜欢被设置为 a MultiBinding。当我说:

但它不像我这样做的方式工作?

0 投票
2 回答
1752 浏览

c# - The uncatchable exception

Followup: The uncatchable exception, pt 2

I'm writing a custom binding engine; my converter is being called before DataContext is set on the target element. This in and of itself isn't a big deal because it will get updated when DataContext eventually receives a value. What is causing problems is the NullReferenceException I'm getting because of DataContext being null, that doesn't seem to want to be caught.

Even though I'm attempting to catch the exception in my value converter:

For some reason the debugger is still halting at this point.

alt text

(This is backed-up the stack trace a bit to where the catch block is--the actual exception happens inside the _member method. The odd part is the catch block is greyed out yet the breakpoint is never reached.)

Now I'm thinking it could be because the exception is happening in another assembly from where it is being caught (I'm trying to package this in a reusable class library, and _member above points to a method in the application assembly).

If I run my little test app without the debugger it works fine, however my application is a little more robust and has general exception handling which is getting triggered because of this.

I'm wondering if there is just some attribute or something (or perhaps some reflection parameter I'm missing?) I can use to make the exception be caught like it's supposed to.

Update: I'm pretty sure this must be due to the reflection and use of MethodInfo.Invoke. It seems that the exception is first of "TargetInvocationException" with an inner exception of NullReferenceException. It seems the invocation exception is somehow occuring outside of the callstack and therefore isn't being caught inside it. I'm not doing anything with threads, but perhaps there is some kind of implicit thread-shifting going on inside MethodInfo.Invoke?

Does anyone have any ideas how I could force this to be caught, or perhaps another way to invoke a method from a method name that won't have this problem? I'm kind of stumped.

0 投票
2 回答
463 浏览

c# - 关于这个 xaml 标记扩展的问题

我试图了解下面 x:Key 属性的标记扩展是做什么的,它是什么类型的标记扩展?

谢谢。

0 投票
2 回答
467 浏览

wpf - 自定义标记扩展返回 RoutedEvents

我正在尝试为我的关闭按钮创建一个通用事件,他们必须在其中关闭窗口,但在此之前将焦点设置到所有者窗口。我不想为每个文件都设置一个事件,因为这非常不切实际,因为我的应用程序中有 30 多个窗口。(所以如果我想改变这种行为,我每次都必须改变 30 个文件)

我不确定这是否是正确的方法,但我尝试制作一个返回 adelegate(object sender, RoutedEventArgs e)以下是代码的标记扩展:

FocusClose 方法获取一个窗口,将其关闭,但之前将焦点设置为其所有者。但我不能让它工作。当我在 xaml 中设置我的按钮时,

(win 是我的窗口名称),我收到错误消息:

Click="{e:CloseWindow {Binding win}}" 无效。'{e:CloseWindow {Binding win}}' 不是有效的事件处理程序方法名称。只有生成类或代码隐藏类的实例方法才有效。第 28 行位置 17。

难道我做错了什么?这是最好的方法还是我有其他选择?提前致谢!

克拉克

0 投票
1 回答
586 浏览

wpf - x:类型和数组——如何?

长话短说,我需要这样做:

换句话说,我需要这样做:

做什么?


更新:它是 2010 设计界面中的一个错误。它在运行时工作正常。

0 投票
1 回答
845 浏览

.net - 如何在 DataTemplate 的 DataType 属性中引用泛型类型的特定实现?

这个问题与“如何在 HierarchicalDataTemplate 的 DataType 属性中引用泛型类型? ”的答案密切相关。

我遵循了该答案的基本思想并创建了这个数据结构:

DictItemVM<T,U>是 a 的视图模型,KeyValuePair<...>源自 BaseVM。BaseVM 有一个 DataTemplate 视图,但我正在努力为DictItemVM<string, Remote.Address>.
Remote.Address 是一个复杂的值类型(存储路径和访问信息)。Remote.Address 有自己的 DataTemplate 视图。
所以现在我有了 StaticResource“DictItemVMOfStringToRemoteAddress”,我想用它来指定一个 DataTemplate:

现在这个 DataTemplate应该被用作一个视图,而是显示 BaseVM 的视图。
有人给我一个关于这个的提示吗?

[编辑:2010-08-09]
我尝试过的一些事情:

在 x:Array 定义中,我替换
<mvvm:GenericType BaseType="{x:Type TypeName=remote:Address}"/>

<x:Type TypeName="remote:Address"/>
因为它基本上就是这样 - 没有区别。

还尝试在标签之间创建 DataType(而不是链接到 StaticResource),如下所示:

在 GenericType.InnerTypes 中使用和不使用 x:Array 进行了尝试,都给了我这个错误。

试图从这样的静态属性传递类型:
DataType="{x:Static mvvm:StaticTypes.DictItemVMOfStringToRemoteAddress}"
和这样:
DataType="{Binding Path={x:Static mvvm:StaticTypes.DictItemVMOfStringToRemoteAddress}}"
没有区别。

奇怪的是,这个特定的 DataTemplate 需要有一些x:Key值,而 xaml 资源文件中的所有其他文件都指向常规类型,例如:DataType="{x:Type mvvm:EffectVM}"。如果我删除 x:Key,我会收到错误。

0 投票
4 回答
18043 浏览

wpf - WPF - 从绑定路径获取属性值

如果我有一个名为 MyObject 的对象,它有一个名为 MyChild 的属性,它本身有一个名为 Name 的属性。如果我只有一个绑定路径(即“MyChild.Name”)和对 MyObject 的引用,我如何获得该 Name 属性的值?

0 投票
1 回答
432 浏览

wpf - WPF - 单元测试自定义标记扩展

您如何建议在 WPF 中对自定义标记扩展进行单元测试?据推测,我需要创建我的标记扩展的实例并调用 ProvideValue 方法。但是,这需要一个 IServiceProvider,它包含一个 IProvideValueTarget 服务。我将如何以编程方式生成它?

0 投票
1 回答
1469 浏览

c# - 如何使用 C# 代码中的标记扩展?

假设我有SomeExtensionMarkupExtension。有谁知道如何将它分配给 C# 代码中的属性?

例如,在 XAML 中我有:

我想使用 C# 代码做同样的事情。

0 投票
2 回答
761 浏览

python - Django 文本标记编辑器

你能推荐一些好的 django 特定的文本标记编辑器吗?