代码中,TextWrapping
属性设置为Wrap
<ListView Name="answerListView" ItemsSource="{Binding Path=answers}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Expander Cursor="Hand">
<Expander.Header>
<TextBlock Text="{Binding Path=Body_Markdown}" TextWrapping="Wrap"/>
</Expander.Header>
</Expander>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但是,现在我已经在TextBlock
中添加了条件格式,即,如果接受answer
则以绿色显示。所以我使用的代码是这样的:
<ListView Name="answerListView" ItemsSource="{Binding Path=answers}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Expander Cursor="Hand">
<Expander.Header>
<TextBlock Text="{Binding Path=Body_Markdown}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=is_accepted}" Value="true">
<Setter Property="Foreground" Value="Green"/>
<Setter Property="TextWrapping" Value="Wrap"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Expander.Header>
</Expander>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在这里,设置的第二行,即Foreground
属性不起作用。即使我在TextBlock
<Style TargetType>
或TextWrapping="Wrap"
后有相同的行,那么它也不起作用。
>必须将ScrollViewer.HorizontalScrollBarVisibility="Disabled"
添加到ListView
中。那么这个问题就解决了。
也指定类型:
<Setter Property="TextBlock.Foreground" Value="Green"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
我猜你绑定的是一个私有字段,而不是公共属性:
{Binding Path=is_accepted} should be replaced by your property {Binding Path=Is_accepted}
此答案假设您使用的是通常的命名,该命名使字段以小写开头,属性以大写开头。