我有一个Listview,我想将它绑定到在同一个类上声明的列表(代码隐藏)
public ObservableCollection<Slot> ListViewList { get; set; }
<ListView x:Name="ListViewSlots" Margin="0,230,0,0" ItemsPanel="{DynamicResource ItemsPanelTemplate1}" ItemsSource="{Binding Path=UserControl.ListViewList}" >
但是没有用,我尝试将usercontrol的datacontext设置为self和desnt工作。
答案 0 :(得分:3)
您是否尝试将UserControl的DataContext
设置为列表,然后将ListView的ItemsSource
设置为?
即
<ListView ItemsSource="{Binding}" >
答案 1 :(得分:1)
添加到您的窗口
<Window ...
DataContext="{Binding RelativeSource={RelativeSource Self}}"
>
然后您的ListView变为
<Listview ItemsSource="{Binding ListViewList}">...
答案 2 :(得分:0)
首先,您必须将您的列表介绍给班级的资源:
public List<string> ListViewList
{
get{ return (List<string> Resources["ListViewList"];}
set{ Resources["ListViewList"] = value;}
}
或使用ObservableCollection:
private ObservableCollection<string> _listViewList = new ObservableCollection<string>();
public ObservableCollection<string> ListViewList { get { return _listViewList; } }
然后在XAML中,你可以绑定一些东西:
<ListView>
<ItemsPanel
ItemsPanel="{DynamicResource ItemsPanelTemplate1}"
ItemsSource="{Binding ListViewList}"
/>
</ListView>
并且正如Joel所说,您需要设置整个窗口的DataContext (或者只是你正在处理的块)自我:
<Window ...
DataContext="{Binding RelativeSource={RelativeSource Self}}"
>