Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 在datagrid wpf中绑定组合框的动态数据 //名称空间错误_C#_Wpf - Fatal编程技术网

C# 在datagrid wpf中绑定组合框的动态数据 //名称空间错误

C# 在datagrid wpf中绑定组合框的动态数据 //名称空间错误,c#,wpf,C#,Wpf,*代码隐藏* { /// ///DropdownGrid.xaml的交互逻辑 /// 公共部分类DropdownGrid:窗口 { 公共DropdownGrid() { 初始化组件(); List objMainContent=新列表{ 新的主要内容{Subject=“math”,Status=“Open”}, 新的主要内容{Subject=“Science”,Status=“Closed”}, 新的主要内容{Subject=“Computers”,Status=“high”} }; De

*代码隐藏*


{
/// 
///DropdownGrid.xaml的交互逻辑
/// 
公共部分类DropdownGrid:窗口
{
公共DropdownGrid()
{
初始化组件();
List objMainContent=新列表{
新的主要内容{Subject=“math”,Status=“Open”},
新的主要内容{Subject=“Science”,Status=“Closed”},
新的主要内容{Subject=“Computers”,Status=“high”}
};
DemoGrid.ItemsSource=objMainContent;
}
公共类主要内容
{
公共字符串主题{get;set;}
公共字符串状态{get;set;}
}
公共类状态列表:列表
{
公共状态列表()
{
本条。添加(“未结”);
本条添加(“已关闭”);
本条加上(“高”);
本条增加(“低”);
}
}
}
}

您不能在
Xaml
中使用嵌套类,
StatusList
必须是自己的类,而不是嵌套在
dropdownggrid

namespace Practise
{
    /// <summary>
    /// Interaction logic for DropdownGrid.xaml
    /// </summary>
    public partial class DropdownGrid : Window
    {
        public DropdownGrid()
        {
            InitializeComponent();
            List<MainContent> objMainContent = new List<MainContent>{
                new MainContent { Subject = "Maths", Status = "Open" },
                new MainContent { Subject = "Science", Status = "Closed" },
                new MainContent { Subject = "Computers" , Status = "high"}
            };

            DemoGrid.ItemsSource = objMainContent;
        }
        public class MainContent
        {
            public string Subject { get; set; }
            public string Status { get; set; }
        }
        public class StatusList : List<string>
        {
            public StatusList()
            {
                this.Add("Open");
                this.Add("Closed");
                this.Add("High");
                this.Add("Low");
            }
        }
    }
}

{
/// 
///DropdownGrid.xaml的交互逻辑
/// 
公共部分类DropdownGrid:窗口
{
公共DropdownGrid()
{
初始化组件();
List objMainContent=新列表{
新的主要内容{Subject=“math”,Status=“Open”},
新的主要内容{Subject=“Science”,Status=“Closed”},
新的主要内容{Subject=“Computers”,Status=“high”}
};
DemoGrid.ItemsSource=objMainContent;
}
}
公共类主要内容
{
公共字符串主题{get;set;}
公共字符串状态{get;set;}
}
公共类状态列表:列表
{
公共状态列表()
{
本条。添加(“未结”);
本条添加(“已关闭”);
本条加上(“高”);
本条增加(“低”);
}
}
}
//名称空间错误

您的问题是什么?您不能在Xaml中使用嵌套类,
StatusList
必须是它自己的类,而不是嵌套在
dropdownggrid
中。谢谢您的回答,但是您是否有任何示例代码可以解决我的问题。
namespace Practise
{
    /// <summary>
    /// Interaction logic for DropdownGrid.xaml
    /// </summary>
    public partial class DropdownGrid : Window
    {
        public DropdownGrid()
        {
            InitializeComponent();
            List<MainContent> objMainContent = new List<MainContent>{
                new MainContent { Subject = "Maths", Status = "Open" },
                new MainContent { Subject = "Science", Status = "Closed" },
                new MainContent { Subject = "Computers" , Status = "high"}
            };

            DemoGrid.ItemsSource = objMainContent;
        }
        public class MainContent
        {
            public string Subject { get; set; }
            public string Status { get; set; }
        }
        public class StatusList : List<string>
        {
            public StatusList()
            {
                this.Add("Open");
                this.Add("Closed");
                this.Add("High");
                this.Add("Low");
            }
        }
    }
}
namespace Practise
{
    /// <summary>
    /// Interaction logic for DropdownGrid.xaml
    /// </summary>
    public partial class DropdownGrid : Window
    {
        public DropdownGrid()
        {
            InitializeComponent();
            List<MainContent> objMainContent = new List<MainContent>{
                new MainContent { Subject = "Maths", Status = "Open" },
                new MainContent { Subject = "Science", Status = "Closed" },
                new MainContent { Subject = "Computers" , Status = "high"}
            };

            DemoGrid.ItemsSource = objMainContent; 
        }
    }

    public class MainContent
    {
        public string Subject { get; set; }
        public string Status { get; set; }
    }

    public class StatusList : List<string>
    {
        public StatusList()
        {
            this.Add("Open");
            this.Add("Closed");
            this.Add("High");
            this.Add("Low");
        }
    }
}

<Window x:Class="Practise.DropdownGrid"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:staticData="clr-namsespace:Practise"
        Title="DropdownGrid" Height="700" Width="600" WindowState="Maximized" Background="#f0f0f0">
    <Window.Resources>
        <staticData:StatusList x:Key="StatusList" />  // Error of Namespace
    </Window.Resources>

    <StackPanel VerticalAlignment="Center" Width="300">

        <DataGrid AutoGenerateColumns="False" Height="366" Name="DemoGrid" ItemsSource="{Binding objLabel}" >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Subject}" Header="Demo Label" Width="*">

                </DataGridTextColumn>
                <DataGridTemplateColumn Header="Drop Down">
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <ComboBox Name="ComboBoxName" ItemsSource="{StaticResource StatusList}" SelectedItem="{Binding Status}"  >                                

                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </StackPanel>
</Window>