簡體   English   中英

將自定義對象列表綁定到datagrid

[英]Binding custom object list to datagrid

我有一堂課

public class ServerList
{
    public ServerList(string ipAdress, int port)
    {
        IPAdress = ipAdress;
        Port = port;
    }

    public string IPAdress { get; private set; }
    public int Port { get; private set; }
}

在名為AddServerWindow的第二個類中,我有一個包含ServerList對象的列表

public ObservableCollection<ServerList> ServerLists = new ObservableCollection<ServerList>(); 

如何將其綁定到放置在主窗口上的數據網格。 我正在嘗試這樣的東西:在MainWindow.cs中

DataContext = new
        {
            dump = this,
            server = new AddServerWindow(),
        };

在MainWindow.xaml中

<DataGridTextColumn Header="Server" IsReadOnly="True" Width="*" Binding="{Binding server.IPAdress}"></DataGridTextColumn>
<DataGridTextColumn Header="Port" IsReadOnly="True" Width="0.6*" Binding="{Binding server.Port}"></DataGridTextColumn>

更改為以下代碼后,DataGrid仍然為空,但現在有10列

ItemsSource="{Binding Source=ServerLists}"

您需要綁定DataGrid的ItemsSource。 完成此操作后,每一行的DataContext都是一個ServerList,因此您可以將這些列直接綁定到IPAdress和Port。 嘗試這樣的事情:

<DataGrid ItemsSource="{Binding server.ServerLists}" AutoGenerateColumns="False">
    <DataGrid.Columns>
       <DataGridTextColumn Header="Server" IsReadOnly="True" Width="*" Binding="{Binding IPAdress}"/>
       <DataGridTextColumn Header="Port" IsReadOnly="True" Width="0.6*" Binding="{Binding Port}"/>
    </DataGrid.Columns>
</DataGrid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM