У меня проблемы с синхронизацией двух списков в WPF.
Я создал и заполнил набор данных двумя таблицами данных. Один DataTable для людей, а другой DataTable для их фотографий.
Я могу заставить оба ListBox'а функционировать независимо друг от друга, но я хочу, чтобы они работали как Master to Detail.
Это мой первый проект WPF, поэтому любые предложения очень ценятся!
C # КОД:
DataSet ds = new DataSet();
UserManagement.Users users = new UserManagement.Users(_cnFaces);
ds = users.GetUsersForFR();
users = null;
lbPeople.DataContext = ds;
lbPhotos.DataContext = ds;
public DataSet GetUsersForFR()
{
Library.DAL.DataCE helper;
try
{
string sSQLPeople = @"
SELECT
*
FROM
tblUsers
";
string sSQLPhotos = @"
SELECT
*
FROM
tblFacialRecognition
";
helper = new Library.DAL.DataCE(_cnFaces);
DataSet ds = new DataSet();
ds.Tables.Clear();
ds.Tables.Add(helper.GetDataTable(sSQLPeople, CommandType.Text, "People"));
ds.Tables.Add(helper.GetDataTable(sSQLPhotos, CommandType.Text, "Photos"));
DataRelation relation = new DataRelation("People2Photos",
ds.Tables["People"].Columns["fldUsername"],
ds.Tables["Photos"].Columns["fldUsername"]);
ds.Relations.Add(relation);
return ds;
}
finally
{
helper = null;
}
}
DataTemplates:
<DataTemplate x:Key="PeopleTemplate">
<StackPanel Margin="3">
<DockPanel >
<Image Source="{Binding fldPrimaryPhoto}" />
</DockPanel>
<DockPanel>
<TextBlock Text="{Binding fldUsername}" Foreground="Black" FontWeight="Bold" />
</DockPanel>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="PhotoTemplate">
<StackPanel Margin="3">
<DockPanel >
<Image Source="{Binding fldPhoto}" />
</DockPanel>
<DockPanel>
<TextBlock Text="{Binding fldUsername}" Foreground="Black" FontWeight="Bold" />
</DockPanel>
</StackPanel>
</DataTemplate>
ListBoxes:
<ListBox Name="lbPeople"
ItemsSource="{Binding Path=Tables[0]}"
IsSynchronizedWithCurrentItem="True"
ItemTemplate="{StaticResource PeopleTemplate}"
SelectionChanged="lbPeople_SelectionChanged" />
<ListBox Name="lbPhotos"
Margin="0,0,326,0"
ItemsSource="{Binding Path=Tables[1]}"
IsSynchronizedWithCurrentItem="True"
ItemTemplate="{StaticResource PhotoTemplate}" />