WPF i DataGridTextColumn

0

Mam problem wyświetleniem wartości Org.Nazwa z obiektu Pracownik w trzeciej kolumnie pierwsze dwie działają bez problemu a trzecie juz nie. Próbowałem na wszelkie sposoby i nic mi nie działa. Jak to zrobi, może ktoś wie??

public class Pracownik
    {
        public decimal Id { get; set; }
        public string Nazwa { get; set; }
        public string Karta { get; set; }
        public Organizacja Org = new Organizacja();
        public DateTime Czas_we { get; set; }
    }
    public class Organizacja
    {
        public string Node { get; set; }
        public string Nazwa { get; set; }
        public decimal Id { get; set; }
    }
 
 <DataGrid.Columns >
  <DataGridTextColumn Header="Id" Width="40" Binding="{Binding Id}"></DataGridTextColumn>
  <DataGridTextColumn Header="Pracownik" Width="40*" Binding="{Binding Nazwa}"></DataGridTextColumn>
  <DataGridTextColumn Header="Dział" Width="40*" Binding="{Binding 'Org.Nazwa'}"></DataGridTextColumn>
                
</DataGrid.Columns>  
0

Musisz to inaczej "zbindować". Docelowo powinno to wyglądać mniej więcej tak:

public class Pracownik
{
public decimal Id { get; set; }
public string Nazwa { get; set; }
public string Karta { get; set; }
public Organizacja Org {get; set;}
public DateTime Czas_we { get; set; }
}
public class Organizacja
{
public string Node { get; set; }
public string Nazwa { get; set; }
public decimal Id { get; set; }
}

<DataGrid.Columns >
<DataGridTextColumn Header="Id" Width="40" Binding="{Binding Id}"/>
<DataGridTextColumn Header="Pracownik" Width="40*" Binding="{Binding Nazwa}"/>
<DataGridTextColumn Header="Dział" Width="40*" Binding="{Binding Name, Path=Org}"/>
</DataGrid.Columns>

Gdybyś chciał edytować dane w kolekcji którą bindujesz warto zaimplementować INotifyPropertyChanged.

0

A jak wyświetlić w kontrolce DataGrid List<Organizacja> tak żeby wyglądało to tak mniejwiecej:

pracownik1 Organizacja1.Nazwa
pracownik1 Organizacja2.Nazwa
pracownik1 Organizacja3.Nazwa

public class Pracownik
    {
        public decimal Id { get; set; }
        public string Nazwa { get; set; }
        public string Karta { get; set; }
        public List<Organizacja> Org { get; set;}
        public DateTime Czas_we { get; set; }
    }

    public class Organizacja
    {
        public string Node { get; set; }
        public string Nazwa { get; set; }
        public decimal Id { get; set; }
    }
 
 <DataGrid.Columns >
  <DataGridTextColumn Header="Id" Width="40" Binding="{Binding Id}"></DataGridTextColumn>
  <DataGridTextColumn Header="Pracownik" Width="40*" Binding="{Binding Nazwa}"></DataGridTextColumn>
  <DataGridTextColumn Header="Dział" Width="40*" Binding="{Binding Path=Org.nazwa}"></DataGridTextColumn>
 
</DataGrid.Columns>   

1 użytkowników online, w tym zalogowanych: 0, gości: 1