C# 将列表传递给多值转换器

C# 将列表传递给多值转换器,c#,wpf,mvvm,devexpress,C#,Wpf,Mvvm,Devexpress,我有这样的DataGrid列 <dxg:GridControl DockPanel.Dock="Right" Name="gridControl" ItemsSource="{Binding FilterWiseListOfWorkOrder,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" > <dxg:GridColumn Header="Name" >

我有这样的DataGrid列

<dxg:GridControl DockPanel.Dock="Right" Name="gridControl" ItemsSource="{Binding FilterWiseListOfWorkOrder,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" >

        <dxg:GridColumn Header="Name" >
                            <dxg:GridColumn.DisplayMemberBinding>
                                <MultiBinding Converter="{StaticResource CellBackRoundColorOtTypeConvertor}" >
                                    <Binding Path="RowData.Row" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}" />
                                    <Binding Path="Listofcolor" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}" />
                                </MultiBinding>
                            </dxg:GridColumn.DisplayMemberBinding>
                        </dxg:GridColumn>
     </dxg:GridControl>
VM

 public List<Ots> FilterWiseListOfWorkOrder
            {
                get { return filterWiseListOfWorkOrder; }
                set
                {
                    filterWiseListOfWorkOrder = value;
                    OnPropertyChanged(new PropertyChangedEventArgs("FilterWiseListOfWorkOrder"));
                }
            }


// This will fill in Ctor of Vm 
     public List<string> Listofcolor
            {
                get { return listofcolor; }
                set { listofcolor = value; }
            }
公共列表过滤器WiseListofWorkOrder
{
获取{return filterWiseListOfWorkOrder;}
设置
{
filterWiseListOfWorkOrder=值;
OnPropertyChanged(新PropertyChangedEventArgs(“FilterWiseListOfWorkOrder”);
}
}
//这将填补虚拟机的空白
公共颜色列表
{
获取{return listofcolor;}
设置{listofcolor=value;}
}
问:如何将此颜色列表传递给转换器

尝试了
DataContext.Listofcolor
,也尝试了使用ElementName

最新评论


如果您的VM是此usercontrol的DataContext,则通过DataContext访问颜色列表

 <Binding Path="DataContext.Listofcolor" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}" />


这就是我缺少的内容

尝试使用DataContext.Listofcolor并尝试使用ElementName
在问题中我提到了设置Viewmodel的主控件是什么,它是窗口还是用户控件?
usercontrol
it self请立即检查它。您将需要Datacontext点具有相对资源绑定的内容,否则它将查找控件的属性。我很惊讶你的第一次装订能用。也许Rowdata是用户控件上的dp。我只能猜测,因为你没有给我们足够的代码。别让我们猜了。@Andy我试过使用
DataContext.ListoColor
@Andy Check现在放置了所有必需的内容。Listofcolor不是依赖属性。在转换器中放置一个断点,并查看使用DataContext.Listofcolor作为路径时,值[1]中实际得到的内容。也许你得到了正确的东西,但是你的代码没有正确地处理它。@Andy没用,我添加了ss
 <Binding Path="DataContext.Listofcolor" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}" />