私はWPFが初めてで、バインディングに問題があり、さまざまな解決策を探していましたが、何も役に立ちませんでした. 2 つの監視可能なコレクションを取得しました。リストビューの異なる列にバインドしたいと考えています。XAML コード:
<GroupBox Header="Search results" HorizontalAlignment="Left" Margin="10,0,0,0" VerticalAlignment="Top" Height="727" Width="739" FontFamily="Malgun Gothic" FontSize="24">
<ListView x:Name="ListView1" HorizontalAlignment="Left" Width="729" FontFamily="Malgun Gothic" FontSize="24" Background="{x:Null}" Margin="0,0,-2,0" ItemsSource="{Binding ElementName=Search, Path=Library}">
<ListView.View>
<GridView>
<GridViewColumn Header="Song name" DisplayMemberBinding="{Binding Track}" Width="550"/>
<GridViewColumn Header="Artist" DisplayMemberBinding="{Binding Artist}" Width="170"/>
</GridView>
</ListView.View>
<ListView.DataContext>
<Classes:Library/>
</ListView.DataContext>
<Classes:Library Text=""/>
</ListView>
</GroupBox>
xaml.cs から
Library CallSearch = new Library();
Playlist Songs = new Playlist();
private void Button_Click_2(object sender, RoutedEventArgs e)
{
CallSearch.Text = textSearch.Text;
CallSearch.Search();
}
クラスから:
private ObservableCollection<string> track = new ObservableCollection<string>();
private ObservableCollection<string> artist = new ObservableCollection<string>();
public ObservableCollection<string> Track
{
get { return track; }
set { track = value; }
}
public ObservableCollection<string> Artist
{
get { return artist; }
set { artist = value; }
}
公共空間の内部:
foreach (DirectoryInfo diNext in dirs)
{
foreach (FileInfo test in diNext.GetFileSystemInfos("*"+tb+"*"+".mp3", SearchOption.AllDirectories))
{
u.Read(test.FullName);
Track.Add(u.Title);
Artist.Add(u.Artist);
}
}
私は何が欠けていますか?
NIT の更新: System.Windows.Data エラー: 40: BindingExpression パス エラー: 'Albums' プロパティが 'object' ''Library' (HashCode=36404074)' に見つかりません。BindingExpression:Path=アルバム; DataItem='Library' (HashCode=36404074); ターゲット要素は 'ListView' (Name='ListView1') です。ターゲット プロパティは 'ItemsSource' (タイプ 'IEnumerable') です System.Windows.Data エラー: 40: BindingExpression パス エラー: 'オブジェクト' ''ライブラリ' (HashCode=40706798)' で 'Track' プロパティが見つかりません。BindingExpression:Path=トラック; DataItem='Library' (HashCode=40706798); ターゲット要素は 'TextBlock' (Name='') です。ターゲット プロパティは 'Text' (タイプ 'String') System.Windows.Data エラー: 40: BindingExpression パス エラー: 'Artist' 「オブジェクト」「ライブラリ」(HashCode=40706798)」にプロパティが見つかりません。BindingExpression: パス = アーティスト; DataItem='Library' (HashCode=40706798); ターゲット要素は 'TextBlock' (Name='') です。ターゲット プロパティは 'Text' (タイプ 'String') です