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>