Witam
Czy jako źródła wiązania, dla ListBox, można zamiennie używać IteamSource z DataContext? Jaka jest różnica?
Pozdrawiam
IteamSource vs. DataContext
Re: IteamSource vs. DataContext
Witam 
Nie można. DataContext i ItemsSource działają osobno. Jeżeli ustawisz właściwość DataContext dla kontrolki ListBox (lub jakiejkolwiek innej kontrolki dziedziczącej po ItemsControl) na jakąś kolekcję, to ta kolekcja nie zostanie automatycznie ustawiona w ItemsSource i nie będzie powiązana z kontrolką. Co więcej, jeśli ustawisz DataContext na kolekcję do której chcesz mieć wiązanie z poziomu xaml'a to odetniesz sobie drogę do ustawienia tej samej kolekcji w ItemsSource. W DataContext chcesz mieć obiekt, który zawiera kolekcję, a w ItemsSource właściwą kolekcję.
Działa to analogicznie jak właściwość Text kontrolki TextBlock. Jeśli ustawisz łańcuch znaków w DataContext to nie zobaczysz go na ekranie, musisz ustawić go w Text.
Oprócz DataContext i ItemsSource dla kontrolek dziedziczących po ItemsControl istnieje jeszcze trzecia właściwośc: Items. Jej działanie jest podobne do działania ItemsSource ale w przeciwieństwie do ItemsSource nie odświeża wiązania kiedy kolekcja źródłowa ulega zmianie. W związku z tym mało kiedy się jej używa. Jeśli potrzebujesz dodatkowych informacji na jej temat mogę napisać kolejnego posta.
Pozdrawiam

Nie można. DataContext i ItemsSource działają osobno. Jeżeli ustawisz właściwość DataContext dla kontrolki ListBox (lub jakiejkolwiek innej kontrolki dziedziczącej po ItemsControl) na jakąś kolekcję, to ta kolekcja nie zostanie automatycznie ustawiona w ItemsSource i nie będzie powiązana z kontrolką. Co więcej, jeśli ustawisz DataContext na kolekcję do której chcesz mieć wiązanie z poziomu xaml'a to odetniesz sobie drogę do ustawienia tej samej kolekcji w ItemsSource. W DataContext chcesz mieć obiekt, który zawiera kolekcję, a w ItemsSource właściwą kolekcję.
Działa to analogicznie jak właściwość Text kontrolki TextBlock. Jeśli ustawisz łańcuch znaków w DataContext to nie zobaczysz go na ekranie, musisz ustawić go w Text.
Oprócz DataContext i ItemsSource dla kontrolek dziedziczących po ItemsControl istnieje jeszcze trzecia właściwośc: Items. Jej działanie jest podobne do działania ItemsSource ale w przeciwieństwie do ItemsSource nie odświeża wiązania kiedy kolekcja źródłowa ulega zmianie. W związku z tym mało kiedy się jej używa. Jeśli potrzebujesz dodatkowych informacji na jej temat mogę napisać kolejnego posta.
Pozdrawiam