2013-03-08 106 views
0
<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:ComboBoxDGWPF" 
     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="StatusList" SelectedItem="Status" >         

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

* 码*绑定动态数据WPF背后

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"); 
      } 
     } 
    } 
} 
+2

什么是你的问题? – LPL 2013-03-08 16:49:30

+0

你不能在Xaml中使用嵌套类,'StatusList'必须是它自己的类,而不是嵌套在'DropdownGrid'内 – 2013-03-08 23:14:20

回答

0

不能在Xaml使用嵌套类,StatusList将有不嵌套在自己的类DropdownGrid

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> 
+0

感谢您的回应,但是您是否有任何可以解决我的问题的检验代码。 – 2013-03-11 15:45:01