【问题标题】:Binding text with <P> to textblock UWP使用 <P> 将文本绑定到文本块 UWP
【发布时间】:2016-08-13 06:38:17
【问题描述】:

我有一个带有段落元素的文本。如何将其绑定到文本块,没有属性? 我使用 MVVM,所以不需要代码隐藏解决方案。

文字示例:

<p xmlns:l=\"http://www.w3.org/1999/xlink\">В истории мирового кинематографа с именем Альфреда Хичкока – режиссера, продюсера, сценариста – неразрывно связан жанр триллера и понятие саспенса. Закомплексованный толстяк обладал волшебным даром, позволявшим ему обращать вечно терзавшие его страхи на пользу творчеству: Хичкок мастерски создавал в своих фильмах атмосферу тревожной неопределенности и напряженного ожидания. Странный, склонный к жестоким розыгрышам человек, в молодости испытавший влияние немецкого и русского кино, не боялся экспериментировать и постоянно использовал новаторские, а порой и шокирующие приемы. Ровесник кинематографа, он рос вместе с ним, создавая и развивая новые жанры, от комедийного триллера до фильма ужасов и тончайшего психологического детектива. Ему довелось работать с самыми звездными актерами Голливуда, такими как Ингрид Бергман, Кэри Грант, Джеймс Стюарт, Грейс Келли. Фильмы Хичкока стали классикой мирового кинематографа, он удостоен звезды на голливудской Аллее славы, почетной награды Американского института кино, ордена Британской империи.</p>

【问题讨论】:

  • 什么问题?你想删除&lt;p xmlns:l...&gt;&lt;/p&gt;
  • 我想实现它,但不想在 TextBlock 中显示

标签: c# text binding uwp


【解决方案1】:

在ViewModel中可以使用正则表达式提取字符串&lt;p xmlns:l=...&gt;...&lt;/p&gt;中的一部分,例如:

<TextBlock Text="{x:Bind VM.Paragraph}" Grid.Row="1" TextWrapping="Wrap" />

视图模型:

public string Paragraph { get; set; }
...
var pra = "<p xmlns:l=\"http://www.w3.org/1999/xlink\">В истории мирового кинематографа с именем Альфреда Хичкока – режиссера, продюсера, сценариста – неразрывно связан жанр триллера и понятие саспенса. Закомплексованный толстяк обладал волшебным даром, позволявшим ему обращать вечно терзавшие его страхи на пользу творчеству: Хичкок мастерски создавал в своих фильмах атмосферу тревожной неопределенности и напряженного ожидания. Странный, склонный к жестоким розыгрышам человек, в молодости испытавший влияние немецкого и русского кино, не боялся экспериментировать и постоянно использовал новаторские, а порой и шокирующие приемы. Ровесник кинематографа, он рос вместе с ним, создавая и развивая новые жанры, от комедийного триллера до фильма ужасов и тончайшего психологического детектива. Ему довелось работать с самыми звездными актерами Голливуда, такими как Ингрид Бергман, Кэри Грант, Джеймс Стюарт, Грейс Келли. Фильмы Хичкока стали классикой мирового кинематографа, он удостоен звезды на голливудской Аллее славы, почетной награды Американского института кино, ордена Британской империи.</p>";
var match = Regex.Match(pra, "<p xmlns:l=\"http://www.w3.org/1999/xlink\">(.*)</p>");
Paragraph = match.Groups[1].Value;

但是如果你要解析HTML,不要使用正则表达式,最好使用Html Agility Pack,你可以参考这个线程:Regular expression to match everything, except HTML tags

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2018-04-14
    • 2012-12-11
    • 2012-05-15
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多