现在,我对绑定了解不多。更准确地说,我完全不明白。所以,这是我的问题:我会马上预订:我非常清楚在这个阶段我在这种情况下和我的脑海里都有粥。如果您有资料或多或少清楚地描述了该主题,请写下它。
我有一个显示成分信息的表格。此表单有两个 ListView:用于品种和产品。
所有数据均取自 SQL 数据库。每种成分都有一组与之相关的品种和产品。
数据库中还没有项目。
错误是条目在品种的ListView中重复了三次。
我在这种形式的类中编写了显示类(这很可能是不正确的)。这是他的代码:
public class Raznovidnosti : INotifyPropertyChanged
{
private string kod, nazv;
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public string Kod
{
get { return kod; }
set { kod = value; RaisePropertyChanged("Kod"); }
}
public string Nazv
{
get { return nazv; }
set { nazv = value; RaisePropertyChanged("Nazv"); }
}
}
为了将数据输入到这个类中,我在对应的表中做了一个 foreach 循环,它返回了查询的结果。
SqlCommand s5 = new SqlCommand(@"Select Kod, Nazv from Raznovidnosti_ingr where Kod_ingr = " + Util.Get_kod_i(), con);
SqlDataAdapter da5 = new SqlDataAdapter(s5);
da5.Fill(raznt);//table запись в таблицу
foreach (DataRow ro in raznt.Rows)
{
Raznovidnosti r = new Raznovidnosti();
r.Kod = ro[0].ToString(); r.Nazv = ro[1].ToString();
razn_cl.Add(r);// razn_cl переменная имеет тип данных List<Raznovidnosti>
}
DataContext = razn_cl;
此外,绑定,甚至没有考虑其正确性:
<ListView Grid.Row="1" Name="Raz" ItemsSource="{Binding}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Nazv}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
添加时(通过新窗口添加)也应该有更新的实现。自然,所有内容都通过请求添加到数据库中。
有哪些解决方案?例如,是否可以不绑定到类,而是绑定到表字段。
我完全明白,在这个阶段,我在这种情况下和我的头脑中都一团糟。如果您有资料或多或少清楚地描述了该主题,请写下它。

好吧,这是最简单的方法。您正在使用 Sql 查询在代码中向 razn_cl 添加数据,但不清除它。在开始时调用它们就足够了。另外,您可能会收到重复的数据。在这里,要么编辑 sql 查询,要么删除应用程序一侧的重复项。如果在应用程序中,则只需在循环后调用 Distinct,如果在 Sql 中,则在查询中调用 Distinct。这是怎么做的