OnProperty在窗口之间更改 - WPF
本文关键字:WPF 之间 窗口 OnProperty | 更新日期: 2023-09-27 18:30:37
首先,我很抱歉,但英语不是我的母语。因此,我正在开发一个带有窗口的 wpf 应用程序,一个按钮与我的数据库上的记录一样多,另一个带有一个小表单来添加新的按钮,但我有一个问题。当我向我的数据库添加另一条记录时,OnPropertyChanged 不会触发并且新按钮没有显示,我认为这是因为数据上下文。
LugaresWindow.xaml
<ItemsControl ItemsSource="{Binding LugaresBtns}" Margin="0,35,0,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="7" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Button Content="{Binding numero}" Click="openLugar" Tag="{Binding idLugar}" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="96" Height="30"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
LugaresWindow.xaml.cs
private void addlugarbtn_Click(object sender, RoutedEventArgs e)
{
//(DataContext as LugarViewService).addLugar("11","6969","A","","1"); **IF I USE IT LIKE THIS IT WORKS!**
EditLugarWindow window = new EditLugarWindow(-1);
window.Show();
}
EditLugarWindow.xaml.cs(确认表单以添加新记录)
if (lvs.addLugar(idparquetxt.Text, numerotxt.Text, sectortxt.Text, matriculatxt.Text, selected))
{
this.Close();
}
在我的LugarViewService上.cs
public bool addLugar(string idParque, string numero, string sector, string matricula, string tipo)
{
int newnumero, newtipo, newparque;
try
{
newparque = int.Parse(idParque);
newnumero = int.Parse(numero);
newtipo = int.Parse(tipo);
pmclient.addLugar(newparque, newnumero, sector, matricula, newtipo, 1);
OnPropertyChanged("LugaresBtns");
return true;
}
catch (Exception e)
{
MessageBox.Show("Erro ao adicionar. Por favor verifique o numero de lugar ou o tipo'n" + e.Message);
return false;
}
}
public List<Lugar> LugaresBtns
{
get
{
return pmclient.getLugaresByParque(idParque).ToList();
}
}
因此,如您所见,LugaresWindow.xaml在使用另一个窗口插入新记录后不会更新。我做错了什么?
谢谢大家!
解决了,我只需要设置窗口。我正在使用的 lvs 实例的数据上下文。感谢大家的回复。