我有一个班级
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上的datagrid。 我是这样尝试smth的: 在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}"
答案 0 :(得分:1)
您需要绑定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>