我有一个带有段落元素的文本。如何将其绑定到文本块,没有属性? 我使用MVVM,因此不需要代码隐藏解决方案。
文字示例:
{{1}}
答案 0 :(得分:1)
您可以使用正则表达式在ViewModel中提取字符串<p xmlns:l=...>...</p>
中的部分,例如:
<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。