2011-12-06 65 views
0

我有一个哈希表,我想将它绑定到wpf中的ListView中,代码或代码背后。将HashTable绑定到WPF中的ListView

我的ListView是

<ListView Canvas.Left="1045" Canvas.Top="634" Height="244" Name="lvContact" Width="536" > 
      <ListView.View> 
       <GridView x:Name="gvContacts"> 
        <GridView.Columns> 
         <GridViewColumn Width="200" x:Name="ContactName" DisplayMemberBinding="{Binding Path=Username}"></GridViewColumn> 
        </GridView.Columns> 
       </GridView> 

      </ListView.View> 

     </ListView> 

在代码beind我不知道如何绑定,但我是在Windows中使用此之前窗体应用程序

 //foreach (DictionaryEntry de in contactList) 
     //{ 
     // ListViewItem contactItem = new ListViewItem(de.Key.ToString()); 

     // if (de.Value.ToString() == "NLN") 
     // { 
     //  contactItem.ForeColor = System.Drawing.Color.Green; 
     // } 
     // else 
     // { 
     //  contactItem.ForeColor = System.Drawing.Color.Gray; 
     // } 


     // lvContact.Items.Add(contactItem); 

    //} 

但现在不工作正确请帮忙

+0

你能说明'contactList'和'DictionaryEntry'是哪种类型吗? – sll

回答

1

你只是缺少标准绑定。下面是一个列表框的XAML:

 <ListBox DockPanel.Dock="Bottom" ItemsSource="{Binding Applications}" DisplayMemberPath="Name" 
       SelectedItem="{Binding SelectedApplication}" Height="auto"/> 

而这里的XAML为DataGrid:

 <DataGrid Height="280" AutoGenerateColumns="False" IsReadOnly="True" HeadersVisibility="Column" 
       ItemsSource="{Binding SelectedApplication.Tasks}" 
       SelectedItem="{Binding SelectedTask}"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Binding="{Binding Path=Sequence}" Header="Order" Width="50" /> 
       <DataGridTextColumn Binding="{Binding Path=Description}" Header="Description" Width="*"/> 
       <DataGridTextColumn Binding="{Binding Path=TaskType}" Header="Type" Width="120"/> 
       <DataGridTextColumn Binding="{Binding Path=FailureCausesAllStop}" Header="Stop" Width="50"/> 
      </DataGrid.Columns> 
     </DataGrid> 

在您的视图模型(或代码隐藏),你需要让你的源数据:

public Collection<Application> Applications 
    { 
     get { return this._applications; } 

     private set 
     { 
      this._applications = value; 
      this.NotifyPropertyChanged(() => this.Applications); 
     } 
    } 

和:

public Application SelectedApplication 
    { 
     get { return this._selectedApplication; } 

     set 
     { 
      this._selectedApplication = value; 
      this.NotifyPropertyChanged(() => this.SelectedApplication); 
     } 
    } 

Ĵ谷歌或阅读有关绑定,你会一切设置。