Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
C# 无法查看绑定到listbox的项目_C#_Wpf_Listbox - Fatal编程技术网

C# 无法查看绑定到listbox的项目

C# 无法查看绑定到listbox的项目,c#,wpf,listbox,C#,Wpf,Listbox,我创建了一个具有以下结构的列表框: <ListBox VerticalAlignment="Stretch" Background="AliceBlue" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible"

我创建了一个具有以下结构的
列表框

<ListBox VerticalAlignment="Stretch" 
                         Background="AliceBlue"
                         ScrollViewer.CanContentScroll="True" 
                         ScrollViewer.VerticalScrollBarVisibility="Visible"
                         ItemsSource="{Binding EventInfo}">
现在属性
League
值也不会显示在值测试中。我真的不明白为什么。
League
属性存在,而且我在xaml中没有错误

我做错了什么

更新:

public Models.EventInfo EventInfo
    {
        get { return _eventInfo; }
        set
        {
            _eventInfo = value;
            OnPropertyChanged();
        }
    }
模型中

public class EventInfo
{
    public string League { get; set; }
    public string Date { get; set; }
    public string GameWeek { get; set; }
    public string GameStart { get; set; }
    public string FirstTime { get; set; }
    public string SecondTime { get; set; }
    public string Stadium { get; set; }
    public List<MatchArbiter> Arbiter { get; set; }
}
公共类事件信息
{
公共字符串联盟{get;set;}
公共字符串日期{get;set;}
公共字符串游戏周{get;set;}
公共字符串GameStart{get;set;}
首次公开字符串{get;set;}
第二次公共字符串{get;set;}
公共字符串体育场{get;set;}
公共列表仲裁器{get;set;}
}

试试这个。您需要使用集合而不是单个项来填充
ItemsSource
。您需要的不是现有的
EventInfo
属性,而是集合属性。我将把它重命名为
EventInfoItems
,以尽量减少混淆

private ObservableCollection<Models.EventInfo> _eventInfoItems = 
    new ObservableCollection<Models.EventInfo>();

public ObservableCollection<Models.EventInfo> EventInfoItems
{
    get { _eventInfoItems; }
    set
    {
        _eventInfoItems = value;
        OnPropertyChanged();
    }
}
XAML

XAML:


试试这个。您需要使用集合而不是单个项来填充
ItemsSource
。您需要的不是现有的
EventInfo
属性,而是集合属性。我将把它重命名为
EventInfoItems
,以尽量减少混淆

private ObservableCollection<Models.EventInfo> _eventInfoItems = 
    new ObservableCollection<Models.EventInfo>();

public ObservableCollection<Models.EventInfo> EventInfoItems
{
    get { _eventInfoItems; }
    set
    {
        _eventInfoItems = value;
        OnPropertyChanged();
    }
}
XAML

XAML:




如果您没有设置自己的项目模板,是否看到项目?如果没有,您是否在输出窗口中看到
绑定错误
?@LynnCrumbling我没有xaml错误。这并不能真正回答我的两个问题中的任何一个。运行应用程序,查看输出窗口中是否存在绑定错误。如果没有,请尝试删除ItemTemplate,再次运行应用程序,然后查看是否显示了项目。您是否能够确定
EventInfo
是什么类型?@EdPlunkett是我的viewmodel的属性。关于绑定错误,我尝试删除itemTemplate,但情况相同。如果您没有设置自己的项目模板,您是否看到这些项目?如果没有,您是否在输出窗口中看到
绑定错误
?@LynnCrumbling我没有xaml错误。这并不能真正回答我的两个问题中的任何一个。运行应用程序,查看输出窗口中是否存在绑定错误。如果没有,请尝试删除ItemTemplate,再次运行应用程序,然后查看是否显示了项目。您是否能够确定
EventInfo
是什么类型?@EdPlunkett是我的viewmodel的属性。关于绑定错误,我尝试删除itemTemplate,但情况相同。感谢您的回答,我将尝试代码。但请注意,在本例中,事件为偶数1,因此不需要observableCollection@AgainMe您需要一个集合才能使用列表框。如果您只有一个列表框,为什么要使用列表框?哦,我不知道这一点,我想我没有为此目标选择正确的控件,您建议哪个控件显示一个项目?@AgainMe Updated。也很简单。我尝试了你的更新,但我得到:ContentControl.ItemTemplate无法识别。似乎缺少此属性。谢谢您的回答,我将尝试代码。但请注意,在本例中,事件为偶数1,因此不需要observableCollection@AgainMe您需要一个集合才能使用列表框。如果您只有一个列表框,为什么要使用列表框?哦,我不知道这一点,我想我没有为此目标选择正确的控件,您建议哪个控件显示一个项目?@AgainMe Updated。也很简单。我尝试了你的更新,但我得到:ContentControl.ItemTemplate无法识别。看来这房子不见了。
    EventInfoItems.Add(new EventInfo { League = "NBA" });
    EventInfoItems.Add(new EventInfo { League = "Premier League" });
    EventInfoItems.Add(new EventInfo { League = "Serie A" });
<ListBox 
    VerticalAlignment="Stretch" 
    Background="AliceBlue"
    ScrollViewer.CanContentScroll="True" 
    ScrollViewer.VerticalScrollBarVisibility="Visible"
    ItemsSource="{Binding EventInfoItems}"
    >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
               <TextBlock Text="{Binding Path=League}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
public Models.EventInfo EventInfo
{
    get { return _eventInfo; }
    set
    {
        _eventInfo = value;
        OnPropertyChanged();
    }
}
<ContentControl 
    VerticalAlignment="Stretch" 
    Background="AliceBlue"
    ScrollViewer.CanContentScroll="True" 
    ScrollViewer.VerticalScrollBarVisibility="Visible"
    Content="{Binding EventInfo}"
    >
    <ContentControl.ContentTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
               <TextBlock Text="{Binding Path=League}" />
            </StackPanel>
        </DataTemplate>
    </ContentControl.ContentTemplate>
</ContentControl>