我在我的项目中使用了材质设计...问题是材质设计的默认主题ListView是透明的,我不能仅通过将属性背景更改为color来更改背景颜色...所以我向listview,所以我覆盖了主题。问题是我的默认材质设计listview中的数据绑定正常工作,但是当我向列表视图中添加样式时数据绑定无法正常工作,并向我显示列表中的对象名称。
ListView
<ListView x:Name="lst" HorizontalAlignment="Left" Height="197" Margin="335,165,0,0" VerticalAlignment="Top" Width="259" RenderTransformOrigin="0.5,0.5">
<ListView.Style>
<Style TargetType="{x:Type ListView}">
<Setter Property="Background" Value="White"/>
</Style>
</ListView.Style>
<ListView.View>
<GridView>
<GridViewColumn Header="#" Width="50" DisplayMemberBinding="{Binding id}"/>
<GridViewColumn Header="data" Width="200" DisplayMemberBinding="{Binding data}"/>
</GridView>
</ListView.View>
</ListView>
即使我尝试了Material Design In XAML override style not working也得到了相同的结果。
当没有将材料设计添加到项目中时,上面的listview xaml可以正常工作。所以我很困惑……是材料设计中的任何错误或问题,还是我需要尝试其他方式进行绑定(请注意:我也尝试了通过items.resource和datacontext进行绑定)
答案 0 :(得分:1)
如果要将Background
应用于透明的ListView
,则可以将其放在Panel
中:
<Grid Background="White">
<ListView x:Name="lst" HorizontalAlignment="Left" Height="197" Margin="335,165,0,0" VerticalAlignment="Top" Width="259" RenderTransformOrigin="0.5,0.5">
<ListView.View>
<GridView>
<GridViewColumn Header="#" Width="50" DisplayMemberBinding="{Binding id}"/>
<GridViewColumn Header="data" Width="200" DisplayMemberBinding="{Binding data}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>