Fla*_*ack 15 wpf binding wpf-controls
我有以下代码隐藏:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
ObservableCollection<int> sampleData = new ObservableCollection<int>();
public ObservableCollection<int> SampleData
{
get
{
if (sampleData.Count <= 0)
{
sampleData.Add(1);
sampleData.Add(2);
sampleData.Add(3);
sampleData.Add(4);
}
return sampleData;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的xaml是:
<Window x:Class="Sandbox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox ItemsSource="{Binding Path=SampleData}"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
该列表不显示集合中的值(或任何内容).有人能指出我的错误是什么吗?
我是否需要显式设置DataContext?我想如果没有设置控件将只使用自己作为DataContext.
Fre*_*lad 20
是的,您需要以某种方式设置DataContext.它没有DataContext,因为除非设置了Window,否则Window没有DataContext.如果在构造函数中执行此操作,ListBox将获取DataContext.
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
Run Code Online (Sandbox Code Playgroud)
否则你可以在Binding中使用RelativeSource,ElementName等,但我想你知道=)
| 归档时间: |
|
| 查看次数: |
48479 次 |
| 最近记录: |