尝试对Listview/Gridview做同样的事情,就像我对DataGrid所做的那样



>伙计们!

我目前有这个带有 WCF 和 LINQ 的 WPF 项目:

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;
    }   

视图模型.cs

public class ViewModel
    {
        HotelService.HotelServiceClient hotelServiceClient = new HotelService.HotelServiceClient();
        public List<RoomModel> Rooms
        {
            get
            {
                return hotelServiceClient.GetRooms().ToList();
            }
        }
    }   

所以正如你们所看到的,我只是设置了这个。DataContext = viewModel 几乎通过纯粹的魔术,WPF 显示了房间的数据库列表。

但我的问题如下。无论如何,我可以使用网格视图/列表视图实现同样的事情吗?我尝试用这些对象替换 xaml,但随后它在窗口中没有显示任何内容。

奖励问题:是否无论如何可以根据事件/委托使用 GridView/ListView,以便我可以将房间保存到数据库并更新视图,并在对数据库所做的更改不是由此 WPF 引起的时更新视图?

我希望我提供了足够的信息!提前感谢:)

试试这个:

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

最新更新