Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何使用绑定设置DataContext?_Wpf_Windows - Fatal编程技术网

Wpf 如何使用绑定设置DataContext?

Wpf 如何使用绑定设置DataContext?,wpf,windows,Wpf,Windows,我有一个像这样的DockPanel <Window ... > <DockPanel x:Name="myDock" DataContext="{Binding HonapokList}" > <TextBox x:Name="tbCount" Text="{Binding Path=Count,Mode=OneWay}" /> </DockPanel> </Window> Dockpanel内有一个文本框,如下所示 &l

我有一个像这样的DockPanel

<Window ... >
<DockPanel x:Name="myDock" DataContext="{Binding HonapokList}" >
<TextBox x:Name="tbCount" Text="{Binding Path=Count,Mode=OneWay}" />
</DockPanel>   
</Window>

Dockpanel内有一个文本框,如下所示

<Window ... >
<DockPanel x:Name="myDock" DataContext="{Binding HonapokList}" >
<TextBox x:Name="tbCount" Text="{Binding Path=Count,Mode=OneWay}" />
</DockPanel>   
</Window>

我就是这样设置HonapokList的,所以它基本上是一个列表字符串>

public List<String> HonapokList;
    public MainWindow()
    {
        InitializeComponent();
        HonapokList = new List<string>();           
        Honapok.ItemsSource = HonapokList;
        HonapokList.Add("January");
        HonapokList.Add("February");
        HonapokList.Add("March");
    }
public-List-HonapokList;
公共主窗口()
{
初始化组件();
HonapokList=新列表();
Honapok.ItemsSource=HonapokList;
HonapokList.添加(“一月”);
HonapokList.添加(“二月”);
加上(“三月”);
}

我想让我的文本框显示HonapokList中的元素数(本例中为3),但其中没有任何内容。这是为什么?

窗口
没有默认的
DataContext
,但看起来您假设它是设置为自身的。您可以在构造函数中将其设置为:

DataContext = this;
或者在XAML中:

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">


您还需要将
HonapokList
更改为属性,而不是现在的字段,以便绑定到它。

窗口
没有默认的
数据上下文
,但它看起来像是假设它设置为自身。您可以在构造函数中将其设置为:

DataContext = this;
或者在XAML中:

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">


您还需要将
HonapokList
更改为属性,而不是现在的字段,以便绑定到它。

首先,您可以仅使用
属性
绑定,而不使用
字段
。因此,将
HonapokList
作为一个属性-

public List<String> HonapokList { get; }

在窗口上设置
DataContext

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">

然后你可以这样做-

<TextBox x:Name="tbCount"
         Text="{Binding Path=HonapokList.Count, Mode=OneWay}"/>

首先,您可以仅使用
属性绑定,而不使用
字段绑定。因此,将
HonapokList
作为一个属性-

public List<String> HonapokList { get; }

在窗口上设置
DataContext

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">

然后你可以这样做-

<TextBox x:Name="tbCount"
         Text="{Binding Path=HonapokList.Count, Mode=OneWay}"/>


这个c代码在XAML中等于什么?MyStackPanel.DataContext=MyProperty;这取决于您在哪里调用它,以及您在XAML中使用的数据上下文,但类似于:这个c sharp代码在XAML中等于什么?MyStackPanel.DataContext=MyProperty;这取决于您在哪里调用它,以及您在XAML中使用的数据上下文,但类似于: