我正在使用以下代码 -
<Label Grid.Row="0" Content="{Binding MyColor}">
<Label.Background>
<SolidColorBrush Color="{Binding MyColor}"></SolidColorBrush>
</Label.Background>
</Label>
<Grid Grid.Row="1" Grid.Column="0">
<ScrollViewer Name="MyScroll"
Template="{DynamicResource MyScrollViewerControlTemplate}">
<ListView Name="List1"
BorderThickness="0"
SelectedItem="{Binding Path=SelectedElement}"
ItemsSource="{Binding Path=Elements}"
Background="{StaticResource aColor}">
<ListView.Resources>
<ControlTemplate x:Key="SelectedTemplate"
TargetType="ListViewItem">
<Border Cursor="Hand">
<Border.Background>
<SolidColorBrush Color="{Binding Path=myColor}">
</SolidColorBrush>
</Border.Background>
<TextBlock Text="Test" />
</Border>
</ControlTemplate>
</ListView.Resources>
</ListView>
</ScrollViewer>
</Grid>
这里当我使用属性myColor为标签设置背景颜色时,它工作正常但是当我在ListView中做同样的事情时,它无法正常工作。
我错过了什么。请建议。
答案 0 :(得分:0)
我找到了答案。我在ListView中引用Elements作为我的绑定源,它没有直接访问myColor属性。我需要在可视化树中搜索DataContext并需要引用它。
我使用了以下代码 -
<Border.Background>
<SolidColorBrush
Color="{Binding Path=DataContext.myColor, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}}">
</SolidColorBrush>
</Border.Background>
我正在成功获得该物业。