我有一个textblock扩展名,允许分配格式化的“Inlines”。我按照@max提供的方法创建了这个扩展。
Format part of the text of TextBlock using iValueConverter
现在,我需要做的是能够以编程方式将此FormattedText属性设置为UI元素,即动态创建TextBlock的父元素。
<TextBlock FontSize="14" FontFamily="Calibri" local:TextBlockEx.FormattedText="{Binding Converter={StaticResource LabelFormatConerter}}" />
答案 0 :(得分:1)
您是否尝试过使用在链接问题的答案中明确声明的方法,或者您是否复制而不看?也许这样的事情?:
TextBlockEx textBlockEx = new TextBlockEx();
textBlockEx.SetFormattedText(textBlockEx, new Run() { Text = "Hello World" });
更新&gt;&gt;&gt;
你真的应该立即询问所有事情,而不是在你的问题得到解答后再提出其他问题。当您从Binding.Path
移除Source
和Binding
时,我甚至无法对您的第二个问题提供完整的答案。要在代码中创建Binding
:
Binding binding = new Binding("PropertyOfYourDataSourceObject");
binding.Source = YourDataSourceObject;
binding.Converter = new SomeConverter();
textBlockEx.SetBinding(TextBlockEx.FormattedTextProperty, binding);
请参阅MSDN上的How to: Create a Binding in Code页面以获取进一步的帮助。