WPF DataContext para crianças / Detalhe UserControl / View

votos
1

Eu sou novo para C # e WPF, por isso, tenha comigo ..

Este não é exatamente um cenário de mestre / detalhes, e poderia ser por isso que eu estou tendo problemas, mas geralmente, eu estou tentando descobrir como se relacionar dois conjuntos de dados que não são completamente mestre / detalhe.

Para mantê-lo simples, digamos que eu tenho dois view / viewmodels para

1) Person
ID, FirstName, LastName

2) Contact
ID, PhoneNumber

Agora, eu sei que normalmente você pensa de uma pessoa que tem vários contatos, e seria algo como isto:

    Contact :  
ID, PersonID, PhoneNumber

mas para este exemplo, vamos continuar a maneira que eu estou indo ...

Eu tenho outra tabela, uma tabela de junção, que tem

PersonID
ContactID

Agora, se tanto Bob e Mary têm o mesmo número de telefone, existem 2 entradas na tabela de junção

1 1
2 1

(Assumindo que Bob é 1, Mary é 2, e 555-555-5555 é ID 1 para o Contact)

Então, eu construo a vista e viewmodel para a pessoa, não há problema eu construir a vista e viewmodel para o contato, novamente nenhum problema

Agora, como, se eu construir uma vista que utiliza Pessoa como o mestre e Contact como o detalhe, para limitar a exibição de apenas os contatos para a pessoa selecionada? E da mesma forma, se eu tenho uma outra visão de Contact #s e eu quero ver uma lista de pessoas associadas com que um número selecionado, como fazer isso também.

É provavelmente algo fácil, mas eu não consigo descobrir isso.

Ou, eu preciso realmente criar uma ObservableCollection no viewmodel pessoa e também ObservableCollection no Contact viewmodel?

Qualquer ajuda seria apreciada.

Publicado 27/08/2009 em 06:16
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Muitos-para-muitos relacionamentos, um conceito de banco de dados, são difíceis de expressar em C #.

Uma maneira de implementar isso é:

  1. Ter o seu objeto Person expor uma coleção de objetos de Contato que pertencem a essa pessoa.
  2. Tenha os seus objetos de Contato expor uma coleção de Pessoa objetos que compartilham esse conjunto de informações de contato.

Isso permite que seu ponto de vista Pessoa e sua visão Contato para operar como vistas padrão mestre-detalhes.

Respondeu 15/06/2010 em 20:54
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more