0
は私がサーバリストにリストを持っているAddServerWindowと呼ばれる第二のクラスでは、クラスバインディングカスタムオブジェクトのリストが
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; }
}
を持っているのDataGrid、私はメインウィンドウ上に置くのDataGridにバインドするにはどうすればよい
public ObservableCollection<ServerList> ServerLists = new ObservableCollection<ServerList>();
オブジェクトにします。 が、私はこのようになめらかにしようとしている:
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>
でMainWindow.csでは以下のコードに変更した後、DataGridが空のままであるが、それは今10列
を持っていますItemsSource="{Binding Source=ServerLists}"
あなたが言っているように、ItemsSource = "{Binding Source = ServerLists}"と言うと、今は空の行が10個あります。 DataContextのは、リストには、列バインディングがオフに残っているようですね –
をメインウィンドウに移動し、これに変更しました。 Binding = "{Binding server.IPAdress}"ではなく、Binding = "{Binding IPAdress}"に更新しましたか?また、バインディングの問題がある場合は、問題の診断に役立つ2つのことがあります。 1.ビジュアルスタジオの出力ウィンドウ(バインディングエラーが表示されます) 2. SnoopWPF https://snoopwpf.codeplexというツール.com /。バインディングエラーのあるWPF要素を強調表示できます。 コードを変更した場合(元のコードと同じように表示されます)、元の投稿を新しいコードで更新してください。あなたはDataContextを変更したようですね? – LukeW