Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将组合框编辑绑定到XAML中的列表_C#_Wpf_Binding_Mvvm_Devexpress - Fatal编程技术网

C# 将组合框编辑绑定到XAML中的列表

C# 将组合框编辑绑定到XAML中的列表,c#,wpf,binding,mvvm,devexpress,C#,Wpf,Binding,Mvvm,Devexpress,我正在尝试将一个组合框绑定到一个项目列表,但我不确定如何进行绑定。我需要按照Mvvm模式在XAML中执行此操作,并且我可以使用DevExpress。我试着说: <dxg:GridControl ItemsSource="{Binding Path=TaskView}" > <dxg:GridControl.Columns > <dxg:GridColumn Header="Project" FieldNam

我正在尝试将一个组合框绑定到一个项目列表,但我不确定如何进行绑定。我需要按照Mvvm模式在XAML中执行此操作,并且我可以使用DevExpress。我试着说:

 <dxg:GridControl  ItemsSource="{Binding Path=TaskView}" >
            <dxg:GridControl.Columns >
                <dxg:GridColumn Header="Project" FieldName="Project" 
DisplayMemberBinding="{Binding Path=ProjectCode, Mode=TwoWay}" AllowEditing="True">

              <dxg:GridColumn.EditSettings>
                <dxe:ComboBoxSettings DisplayMember="Project" ValueMember="ProductName" ItemTemplate="{Binding Path=Projects}" />
              </dxg:GridColumn.EditSettings>
            </dxg:GridColumn>
            <dxg:GridColumn Header="Project Description" DisplayMemberBinding="{Binding Path=ProjectName}" AllowEditing="False"/>
            <dxg:GridColumn Header="Description" DisplayMemberBinding="{Binding Path=ProjectDescription}" AllowEditing="False"/>

        </dxg:GridControl.Columns>
        <dxg:GridControl.View>
            <dxg:TableView MultiSelectMode="Row" SelectedRowsSource="{Binding Path=SelectedTasks}" 
                       ShowAutoFilterRow="False" ShowTotalSummary="True" 
                       AllowEditing="True" />
        </dxg:GridControl.View>
    </dxg:GridControl>

这段代码对我来说似乎很正确,但我不能使用ItemTemplate=“{Binding Path=Projects}”,因为ComboBoxSettings不是依赖项属性。这段代码很有效,我想在gridcontrol中做一些类似的事情:

<dxe:ComboBoxEdit SelectedItem="{Binding Path=CurrentEmployeeName}" ItemsSource="Binding Path=EmployeeView}">
                    <dxe:ComboBoxEdit.StyleSettings>
                        <dxe:ComboBoxStyleSettings />
                    </dxe:ComboBoxEdit.StyleSettings>
                </dxe:ComboBoxEdit>

有人能给我一个线索吗?非常感谢。

您应该使用,而不是ComboBoxSettings:

<dxg:GridColumn Header="...">
    <dxg:GridColumn.EditSettings>
        <dxe:ComboBoxEditSettings ItemsSource="{Binding ...}"  ... />
    </dxg:GridColumn.EditSettings>
</dxg:GridColumn>


由于我没有任何关于DevExpress控件的文档,因此无法给出完整的答案。但是,我认为
ComboBoxSettings.ItemTemplate
不是项目绑定;这可能是每个项目的显示方式。您尝试使用DataGrid了吗?这里有一个将组合框与DataGrid一起使用的示例:。也许同样的技术也适用于DX网格控件。我用ItemTemplate输入了一个错误:我也尝试了ItemSOurce,但仍然是错误的。我将检查tomorow是否可以使用这个示例,正如写入mvvm light的一样,我使用的是devexpress,但可能类似。