【发布时间】:2021-08-22 09:21:16
【问题描述】:
我正在尝试从表bewertungen 中绑定属性isfavorit,这是filme_serien 类中的一个ICollection。我有一个filme_serien 的列表。我正在尝试通过filme_serienList 将isfavorit 绑定到bewertungen 表中。
ER:
C#:
电影连续剧:
public partial class FilmeSerien
{
public FilmeSerien()
{
Bewertungens = new HashSet<Bewertungen>();
}
public int FId { get; set; }
public bool Isfilm { get; set; }
public virtual ICollection<Bewertungen> Bewertungens { get; set; }
}
Bewertungen:
public partial class Bewertungen
{
public string BwAcc { get; set; }
public int BwFs { get; set; }
public bool Isfavorit { get; set; }
public int Bewertung { get; set; }
public virtual Account BwAccNavigation { get; set; }
public virtual FilmeSerien BwFsNavigation { get; set; }
}
FSList 和 SelectedFS 在 FSViewModel 中:
public IEnumerable<FilmeSerien> FSList
{
get => _db?.FilmeSeriens.Include(x => x.Bewertungens).AsNoTracking().ToList();
};
public FilmeSerien _selectedFS;
public FilmeSerien SelectedFS
{
get => _selectedFS;
set
{
_selectedFS = value;
NotifyPropertyChanged();
}
}
XAML:
d:DataContext="{d:DesignInstance Type=anzeigen:FSViewModel}"
FSViewModel 包含 FSList 和 FavoritCommand,它们履行职责
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ItemsSource="{Binding FSList}"
SelectedItem="{Binding SelectedFS}">
<ListBox.ItemTemplate>
<DataTemplate>
<materialDesign:Card >
<Grid>
<ToggleButton Style="{StaticResource MaterialDesignFlatPrimaryToggleButton}"
IsChecked="False"
Command="{Binding DataContext.FavoritCommand,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
CommandParameter="{Binding}" />
</Grid>
</materialDesign:Card>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
【问题讨论】:
-
一个 Bewertung 应该命名为单数 Bewertung,而不是 Bewertungen。该系列应该被称为Bewertungen,而不是Bewertungens,它不是德语。一般来说,使用英文标识符名称,因为它对国际观众来说更具可读性。
-
@Clemens 我对此无能为力,因为我已经通过
EntityFrameworkCore生成了模型类 -
重命名模型元素...
-
您要绑定到哪个特定的
Bewertungen?ToggleButton中的DataContext是什么? -
请发布更多您的 xaml,以便人们可以帮助您
标签: c# wpf data-binding binding