C# 无法解析datatrigger wpf中的绑定
使用此代码:C# 无法解析datatrigger wpf中的绑定,c#,wpf,xaml,binding,foreground,C#,Wpf,Xaml,Binding,Foreground,使用此代码: <DataGrid Grid.Row="1" ItemsSource="{Binding DdaOptions.FilteredRecords.FilteredRecords}" AutoGenerateColumns="False" VerticalScrollBarVisibility="Auto" GridLinesVisibility="None" Background="{StaticResource White1
<DataGrid
Grid.Row="1"
ItemsSource="{Binding DdaOptions.FilteredRecords.FilteredRecords}"
AutoGenerateColumns="False"
VerticalScrollBarVisibility="Auto"
GridLinesVisibility="None"
Background="{StaticResource White1}"
BorderThickness="1"
BorderBrush="{StaticResource White1}"
Style="{StaticResource Roboto10DataGrid}"
AreRowDetailsFrozen="True"
CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Header="GuideNumber" Binding="{Binding GuideNumber}" />
<DataGridTextColumn Header="PartNumber" Binding="{Binding PartNumber}" />
<DataGridTextColumn Header="Options" Binding="{Binding Options}" />
<DataGridTextColumn Header="Description" Binding="{Binding Description}" />
<DataGridTextColumn Header="PartStock" Binding="{Binding PartStock}" />
<DataGridTextColumn Header="InterventionType" Binding="{Binding InterventionType}" />
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsInDda}" Value="True">
<Setter Property="Foreground" Value="{StaticResource DarkAccent1}" />
</DataTrigger>
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="{Binding DdaOptions.MyColor}"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
用这条线
<SolidColorBrush Color="Red"/>
如果DdaOptions.MyColor源属性返回画笔,则应直接将前景属性设置为此画笔:
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground" Value="{Binding DdaOptions.MyColor}" />
</DataTrigger>
如果ddapoptions.MyColor源属性返回画笔,则应直接将前景属性设置为此画笔:
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground" Value="{Binding DdaOptions.MyColor}" />
</DataTrigger>
首先:
如果DdaOptions.MyColor
属于solidcolorbush
类型,则使用以下方法:
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataContext.DdaOptions.MyColor}"/>
</DataTrigger>
当然,您必须将AncestorType=Window
更改为正确的类型。首先:
如果DdaOptions.MyColor
属于solidcolorbush
类型,则使用以下方法:
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataContext.DdaOptions.MyColor}"/>
</DataTrigger>
当然,您必须将
AncestorType=Window
更改为正确的类型。如果附加属性,请尝试这样做。。。什么是DdaOptions
?DdaOptions是一个实现INotifyPropertyChangedIs的视图模型。Mycolor
静态?如果是,您可以将其移动到XAML
并使用StaticResource
。您还必须解释daOptions
应该是什么。如果附加属性,请尝试这样做,而不是这样做。。。什么是DdaOptions
?DdaOptions是一个实现INotifyPropertyChangedIs的视图模型。Mycolor
静态?如果是,您可以将其移动到XAML
并使用StaticResource
。您还必须解释daOptions
应该是什么。是的,我这样做了,但颜色总是以黑色变化。在调试中,我可以看到MyColor(MyColor=new SolidColorBrush(Color.FromRgb(MyColor.R,MyColor.G,MyColor.B));)已正确设置,但我看到UI上始终为黑色使用不同的笔刷,然后:DdaOptions.MyColor=System.Windows.Media.brush.Yellow;根据您提供的信息,您不能期望任何人知道您希望显示的确切颜色…它仍然不起作用。我有一组按钮和一个网格。每个按钮都有一个自定义的背景色。当我单击按钮时,网格中行的前景应根据单击按钮的颜色进行相应更改。请提供所有相关代码,说明如何设置突出显示的属性。确保定义此属性的类正确实现INotifyPropertyChanged接口:是的,我这样做了,但颜色始终以黑色更改。在调试中,我可以看到MyColor(MyColor=new SolidColorBrush(Color.FromRgb(MyColor.R,MyColor.G,MyColor.B));)已正确设置,但我看到UI上始终为黑色使用不同的笔刷,然后:DdaOptions.MyColor=System.Windows.Media.brush.Yellow;根据您提供的信息,您不能期望任何人知道您希望显示的确切颜色…它仍然不起作用。我有一组按钮和一个网格。每个按钮都有一个自定义的背景色。当我单击按钮时,网格中行的前景应根据单击按钮的颜色进行相应更改。请提供所有相关代码,说明如何设置突出显示的属性。确保定义此属性的类正确实现INotifyPropertyChanged接口:
MyColor = new SolidColorBrush(Color.FromRgb(myColor.R, myColor.G, yColor.B));
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground" Value="{Binding DdaOptions.MyColor}" />
</DataTrigger>
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataContext.DdaOptions.MyColor}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Highlighted}" Value="True">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataContext.DdaOptions.MyColor}"/>
</Setter.Value>
</Setter>
</DataTrigger>