2016-02-25 15 views
0

伙计!试图做与ListView/Gridview同样的事情,因为我正在用DataGrid

我现在有这个WPF项目与WCF和LINQ:

MainWindow.xaml

<GroupBox Header="Available Rooms" > 
    <DataGrid Name="roomDataGrid" ItemsSource="{Binding Rooms}" AutoGenerateColumns ="False" "> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Room" Binding="{Binding RoomId}" /> 
      <DataGridTextColumn Header="Reserved" Binding="{Binding RoomTaken}" /> 
      <DataGridTextColumn Header="Beds" Binding="{Binding Beds}" /> 
      <DataGridTextColumn Header="Size" Binding="{Binding Size}" /> 
      <DataGridTextColumn Header="Rank" Binding="{Binding RoomRank}" /> 
     </DataGrid.Columns> 
    </DataGrid> 
</GroupBox> 

MainWindow.xaml.cs

public MainWindow() 
    { 
     InitializeComponent(); 
     viewModel = new ViewModel(); 
     this.DataContext = viewModel; 
    } 

ViewModel.cs

public class ViewModel 
    { 
     HotelService.HotelServiceClient hotelServiceClient = new HotelService.HotelServiceClient(); 

     public List<RoomModel> Rooms 
     { 
      get 
      { 
       return hotelServiceClient.GetRooms().ToList(); 
      } 
     } 
    } 

所以哟你们可以看到,我只是设置this.DataContext = viewModel并且几乎通过纯粹的Magic,WPF显示了Rooms的数据库列表。

但我的问题如下。无论如何,我可以使用GridView/Listview实现相同的功能吗?我尝试用这些对象替换xaml,但之后它没有在窗口中显示任何内容。

奖励问题:有没有办法根据事件/委托使用GridView/ListView,这样我就可以将房间保存到数据库并获取更新的视图,并在数据库发生更改时获取视图更新这不是由这个WPF造成的?

我希望我提供了足够的信息!而在此先感谢:)

回答

1

试试这个:

<GroupBox Header="Available Rooms" > 
<ListView Name="roomDataGrid" ItemsSource="{Binding Rooms}" > 
    <ListView.View> 
     <GridView> 
       <GridViewColumn Header="Room" DisplayMemberBinding="{Binding RoomId}" /> 
     <GridViewColumn Header="Reserved" DisplayMemberBinding="{Binding RoomTaken}" /> 
     <GridViewColumn Header="Beds" DisplayMemberBinding="{Binding Beds}" /> 
     <GridViewColumn Header="Size" DisplayMemberBinding="{Binding Size}" /> 
     <GridViewColumn Header="Rank" DisplayMemberBinding="{Binding RoomRank}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

+0

是否有应该是一个和在底线? – user1784297

+0

不,只是印刷错误。固定。 –

+0

我可以问你一个跟进问题吗?假设我通过WCF和LINQ向数据库添加了一个新房间。我如何更新视图?我有点迷路了。 – user1784297

相关问题