Подход, выбранный в качестве ответа, работает нормально ... но мне не нравится указывать DataContext
программно при настройке всего остального в XAML, я не чувствую, что это "правильно" (возможно, этопросто я).Поэтому для следующего человека или любого, кто думает как я и находит это в поисковой системе (как я), вот способ сделать это в XAML:
C #
public sealed partial class MainPage : Page
{
public ObservableCollection<string> Messages { get; set; }
public MainPage()
{
this.Messages = new ObservableCollection<string>();
this.InitializeComponent();
}
}
XAML
<Window
....
DataContext="{Binding RelativeSource={RelativeSource Self}}"
...>
<ListView ItemsSource="{Binding Messages}" ... />
</Window>
Если честно, я думаю, {Binding RelativeSource={RelativeSource Self}}
должно быть значением по умолчанию для любого элемента верхнего уровня (Page
, Window
,и т. д.) DataConext
, потому что многие просто ожидают, что это сработает, я знаю, что так оно и будет.Честно говоря, я чувствую, что {Binding RelativeSource={RelativeSource Self}}
немного многословно и почти жаждет более короткого синтаксиса.