Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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# 在不同行中显示一个属性的列表框_C#_Wpf_Xaml_Listbox - Fatal编程技术网

C# 在不同行中显示一个属性的列表框

C# 在不同行中显示一个属性的列表框,c#,wpf,xaml,listbox,C#,Wpf,Xaml,Listbox,我使用以下代码将ListBox绑定到一个列表,即list,并设置绑定路径=Name。但列表框只显示一个字母被分成行的名称。就像名字是JOHN一样,列表框第1行显示“J”,第2行显示“O”,第3行显示“H”,第4行显示“N”。这是密码 Xaml <ListBox Height="Auto" ItemsSource="{Binding Path=Name}" HorizontalAlignment="Stretch" Margin="0,80,0,0" Name="ledgerListView

我使用以下代码将ListBox绑定到一个列表,即list,并设置绑定路径=Name。但列表框只显示一个字母被分成行的名称。就像名字是JOHN一样,列表框第1行显示“J”,第2行显示“O”,第3行显示“H”,第4行显示“N”。这是密码

Xaml

<ListBox Height="Auto" ItemsSource="{Binding Path=Name}" HorizontalAlignment="Stretch" Margin="0,80,0,0" Name="ledgerListView" VerticalAlignment="Stretch" Width="200" KeyDown="ledgerListView_KeyDown" MouseDoubleClick="ledgerListView_MouseDoubleClick" IsSynchronizedWithCurrentItem="True" />

代码隐藏

List<Ledgers> ledgers = new List<Ledgers>();
        ledgers = DAL_Ledgers.LoadLedgers();
        this.DataContext = ledgers;
List分类账=新列表();
分类账=DAL_分类账。装载分类账();
this.DataContext=分类账;

看起来您绑定到了错误的东西。。。如果您使用:

<ListBox ItemsSource="{Binding}" ...>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <sdk:Label Content="{Binding Path=Name}" />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

看起来您绑定到了错误的东西。。。如果您使用:

<ListBox ItemsSource="{Binding}" ...>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <sdk:Label Content="{Binding Path=Name}" />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

需要将ItemsSource属性绑定到要从中生成列表框项的源集合。在本例中,这将只是DataContext。要显示每个项目的名称,您可以将DataTemplate应用于包含要为每个项目显示的内容的ItemTemplate属性,或者对于类似这样的简单情况,只需使用DisplayMemberPath来指定name属性

<ListBox ItemsSource="{Binding}" DisplayMemberPath="Name" x:Name="ledgerListView"/>

需要将ItemsSource属性绑定到要从中生成列表框项的源集合。在本例中,这将只是DataContext。要显示每个项目的名称,您可以将DataTemplate应用于包含要为每个项目显示的内容的ItemTemplate属性,或者对于类似这样的简单情况,只需使用DisplayMemberPath来指定name属性

<ListBox ItemsSource="{Binding}" DisplayMemberPath="Name" x:Name="ledgerListView"/>


此外,您可能需要使用ObservableList,否则账本中的更改将不被考虑。

此外,您可能需要使用ObservableList,否则账本中的更改将不被考虑。

您的解决方案只适用于一个问题之外的其他问题。我正在执行一个不起作用的用于筛选目的的搜索代码。下面是代码:
listledgers=newlist();分类账=DAL_分类账。装载分类账();this.DataContext=分类账;ICollectionView视图=CollectionViewSource.GetDefaultView(分类账);新的TextSearchFilter(视图,this.searchTextBox)如果您在过滤方面遇到单独的问题,您应该创建一个包含更多详细信息的新问题。您的解决方案仅适用于一个问题以外的其他问题。我正在执行一个不起作用的用于筛选目的的搜索代码。下面是代码:
listledgers=newlist();分类账=DAL_分类账。装载分类账();this.DataContext=分类账;ICollectionView视图=CollectionViewSource.GetDefaultView(分类账);新的TextSearchFilter(视图,this.searchTextBox)如果您在过滤方面有单独的问题,您应该创建一个包含更多详细信息的新问题。