C# 无法设置通过ViewModel获取的颜色
我使用以下代码-C# 无法设置通过ViewModel获取的颜色,c#,wpf,C#,Wpf,我使用以下代码- <Label Grid.Row="0" Content="{Binding MyColor}"> <Label.Background> <SolidColorBrush Color="{Binding MyColor}"></SolidColorBrush> </Label.Background> </Label> <Grid Grid.Row="1" Grid.Column="0"
<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>
<Border.Background>
<SolidColorBrush
Color="{Binding Path=DataContext.myColor, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}}">
</SolidColorBrush>
</Border.Background>
在这里,当我使用属性myColor设置标签的背景色时,它工作正常,但当我在ListView中执行相同操作时,它不工作
我错过了什么。请建议。我找到了答案。我在ListView中将元素作为绑定源引用,它不能直接访问myColor属性。我需要在可视化树中搜索DataContext并需要引用它 我使用了以下代码-
<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>
<Border.Background>
<SolidColorBrush
Color="{Binding Path=DataContext.myColor, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}}">
</SolidColorBrush>
</Border.Background>
而且我正在成功地获得财产