DataContext和绑定self作为RelativeSource

gli*_*ite 17 c# data-binding datacontext xaml

有人能解释我下面的XAML系列吗?

DataContext="{Binding RelativeSource={RelativeSource Self}}"
Run Code Online (Sandbox Code Playgroud)

这里是简单的使用示例.

如何用C#代码替换该行?

Dyl*_*dor 12

这只是将DataContext属性设置为等于具有属性的对象.代码相当于this.DataContext = this;

编辑

DataContext属性是用作此对象及其子对象上发生的所有绑定的上下文的对象.如果没有DataContext正确设置要绑定的模型,则所有绑定都将失败.

EDIT2

以下是如何在代码中设置它(匹配您的示例):

public partial class ListViewTest : Window
{
    ObservableCollection<GameData> _GameCollection = 
        new ObservableCollection<GameData>();

    public ListViewTest()
    {
        _GameCollection.Add(new GameData { 
          GameName = "World Of Warcraft", 
          Creator = "Blizzard", 
          Publisher = "Blizzard" });
        _GameCollection.Add(new GameData { 
          GameName = "Halo", 
          Creator = "Bungie", 
          Publisher = "Microsoft" });
        _GameCollection.Add(new GameData { 
          GameName = "Gears Of War", 
          Creator = "Epic", 
          Publisher = "Microsoft" });

        InitializeComponent();

        this.DataContext = this;   //important part
    }

    public ObservableCollection<GameData> GameCollection
    { get { return _GameCollection; } }

    private void AddRow_Click(object sender, RoutedEventArgs e)
    {
      _GameCollection.Add(new GameData { 
          GameName = "A New Game", 
          Creator = "A New Creator", 
          Publisher = "A New Publisher" });
    }
}
Run Code Online (Sandbox Code Playgroud)