这个问题直接与(接受的答案)这个问题有关:Change ListView CellTemplate based on state of item,其中包含所接受答案中的所有相关XAML。
其中一个州需要ProgressBar。哪个有效,除了我不能让它看起来和按照我想要的方式行事,这是为了占用所有可用的地平线和垂直空间而不占用比所需更多的空间。
为了解决这个问题,我试图遵循here给出的建议,但我所做的一切似乎都没有效果。 XxxContentAlignment选项将被忽略,无论我是否将它们应用于ContentControl
,ListViewItem
或其他我在此过程中提出的其他内容。对指定元素的绑定也失败了,给了我一个
Cannot find source for binding with reference
错误,指的是无法找到其他答案调用col1
的内容。我发现的所有其他建议都是这些建议的变体,涉及ActualWidth
或其ActualHeight
堂兄,或涉及RelativeSource
和FindAncestor
的内容。
在这一点上,在过去的两个小时内试图解决这个相当微不足道的事情,我想我真的可以用最后的推动来向我展示正确的方向。 (并且可能指出我一直在犯的明显错误......)
答案 0 :(得分:1)
这是一个很高的水平,我通过改变ItemStyle来伸展它:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
我测试了一些代码,只是因为您看到没有设置HorizontalAlignment
或HorizontalContentAlignment
:
<GridViewColumn Header="Status">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsActive}" Value="True">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<ProgressBar Height="20"
Value="{Binding Id}" Minimum="0" Maximum="10"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<!-- ... -->
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>