`TextBlock` 的 `TextWrapping` 属性 没有在条件下设置为 `W​​rap`

`TextBlock`'s `TextWrapping` property not getting set to `Wrap` on conditions

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" 之后有相同的行,它也不起作用。

也指定类型:

<Setter Property="TextBlock.Foreground" Value="Green"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap"/>

我猜你绑定的是私有字段,而不是 public 属性:

{Binding Path=is_accepted} should be replaced by your property {Binding Path=Is_accepted}

此答案假设您使用的是通常的命名方式,即字段以小写字母开头,属性以大写字母开头。

ScrollViewer.HorizontalScrollBarVisibility="Disabled" 必须添加到 ListView。那么这个问题就迎刃而解了。