C#不'中的列表框;我没有出现

C#不'中的列表框;我没有出现,c#,wpf,listbox,C#,Wpf,Listbox,我的代码中已经有一个列表框,现在我添加了一个新的列表框: <ListBox x:Name="Diaryresult" Foreground="Black" Margin="19,0,0,8"> <ListBox.ItemTemplate> <Dat

我的代码中已经有一个列表框,现在我添加了一个新的列表框:

 <ListBox x:Name="Diaryresult"
                             Foreground="Black"
                             Margin="19,0,0,8">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Binding {name}"
                                               FontSize="24" />
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

我正在使用以下代码填充此列表:

   XElement diary = XElement.Parse(e.Result);
                IEnumerable<XElement> diaryelements = diary.Elements("diaryelement");

                List<Produkt> diaryprodukte = new List<Produkt>();

                foreach (XElement diaryelement in diaryelements)
                {
                    Produkt p = new Produkt();
                    p.name = diaryelement.Element("diaryshortitem").Element("description").Element("name").Value;
                    p.shortfacts = diaryelement.Element("diaryshortitem").Element("data").Element("kj").Value + " KJ - "
                            + diaryelement.Element("diaryshortitem").Element("data").Element("kcal").Value + "kcal";
                    diary.Add(p);

                    Debug.WriteLine("Added "+p.name);
                }
                Diaryresult.ItemsSource = diaryprodukte;


                Diaryresult.Visibility = System.Windows.Visibility.Visible;
XElement日记=XElement.Parse(e.Result);
IEnumerable diaryelements=diary.Elements(“diaryelement”);
List diaryprodukte=新列表();
foreach(重元素中的XElement重元素)
{
Produkt p=新的Produkt();
p、 name=diaryelement.Element(“diaryshortitem”).Element(“description”).Element(“name”).Value;
p、 shortfacts=diaryelement.Element(“diaryshortitem”).Element(“数据”).Element(“kj”).Value+“kj-”
+日记元素。元素(“日记短项”)。元素(“数据”)。元素(“kcal”)。值+“kcal”;
添加(p);
Debug.WriteLine(“添加”+p.name);
}
Diaryresult.ItemsSource=diaryprodukte;
Diaryresult.Visibility=System.Windows.Visibility.Visible;

但是,它没有出现。有人看到窍门了吗?

您的绑定标签不正确。“Binding{Name}”对XAML没有任何意义。{Binding Name}是指上下文的属性名,这是您正在尝试执行的操作

替换:

<TextBlock Text="Binding {name}" FontSize="24" />

并且,记住在完成后调用()以便将更改通知UI线程。我的意思是,您使用的是
Diaryresult.Visibility=System.Windows.Visibility.Visibility
这是您通知UI的方式吗?您使用的是MVVM还是CodeBehind?

您的绑定标记不正确。“Binding{Name}”对XAML没有任何意义。{Binding Name}是指上下文的属性名,这是您正在尝试执行的操作

替换:

<TextBlock Text="Binding {name}" FontSize="24" />

并且,记住在完成后调用()以便将更改通知UI线程。我的意思是,您使用的是
Diaryresult.Visibility=System.Windows.Visibility.Visibility
这是您通知用户界面的方式吗?您使用的是MVVM还是CodeBehind?

看起来您并不是在将产品添加到dairyprodukte。绑定dairyprodukte时,它仍然是一个空列表

试一试


看起来您并没有将产品添加到dairyprodukte。绑定dairyprodukte时,它仍然是一个空列表

试一试


我想这是XAML,不是WebForms我想这是XAML,不是WebForms
dairyprodukt.Add(p);
foreach (XElement diaryelement in diaryelements)
            {
                Produkt p = new Produkt();
                p.name = diaryelement.Element("diaryshortitem").Element("description").Element("name").Value;
                p.shortfacts = diaryelement.Element("diaryshortitem").Element("data").Element("kj").Value + " KJ - "
                        + diaryelement.Element("diaryshortitem").Element("data").Element("kcal").Value + "kcal";
                diary.Add(p);

                Debug.WriteLine("Added "+p.name);
                diaryprodukte.Add(p);
            }