Wpf 如何使用绑定设置DataContext?
我有一个像这样的DockPanelWpf 如何使用绑定设置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
<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中使用的数据上下文,但类似于: