返回首页

大家好!

IM开发WPF应用程序窗口和TextBlock内。
我有外部的方法,这需要在XAML中使用它的字符串参数和IM。


<TextBlock Text="{MyMethod mystringparameter}" />                


现在我想我DependencyPropery"MyString的"作为参数发送没有成功......

{C}
和代码隐藏我的依赖项属性


public string MyString

        {

            get { return (string)GetValue(MyStringProperty); }

            set { SetValue(MyStringProperty, value); }

        }

 

        // Using a DependencyProperty as the backing store for MyString.  This enables animation, styling, binding, etc...

        public static readonly DependencyProperty MyStringProperty =

            DependencyProperty.Register("MyString", typeof(string), typeof(Window1), new UIPropertyMetadata("DefaultString"));


我怎样才能实现我的目标?

更新:

Littlebit更多的信息。 MyClass的继承的MarkupExtension。它可以处理给定的参数和返回值correponding其给定的密钥资源键。所以基本上我的目标是动态改变资源键。第一的TextBlock例如工作时,关键是静态设置。

希望你的想法{S0}

干杯!

回答

评论会员:西蒙邦Terkildsen 时间:2012/02/05

{体C3}不会工作,你不能像在XAML中使用方法。你可以做以下三件事之一:

1)
2)创建一个附加的属性,并做一些反思
3)创建自己的标记扩展
我建议你​​现在做上述,而不是告诉我你想要什么实现,我相信我们可以找到比另一种更好的方式,使用方法。好吧,我怀疑这是你试图做什么。我不会去你如何能做到这里,而是指你所涵盖的主题文章:
{A}
有没有它是如何做explenation,但既然你已经看了ABIT的MarkupExtension我敢肯定,你可以看一下代码,并迅速找出它是如何工作的。它也表明你如何能避免需要注册一个像韦恩在他的答复建议的命名空间
评论会员:游客 时间:2012/02/05
Anuja帕瓦尔多尔:你的TextBlock有synatx的错误,因为这是书面写这样{的C4}和后面的代码{C5的}
韦恩Gaylard:当你正在使用的MarkupExtension,你需要再绑定您的MarkupExtension参数MyString的变量。这样的事情:

{5233}
分机是您的分机可以发现其中的命名空间。显然,代替你改正合适的。
变量名和扩展名
希望这有助于