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在使用另一个窗口插入新记录后不会更新。我做错了什么?

谢谢大家!

OnProperty在窗口之间更改 - WPF

解决了,我只需要设置窗口。我正在使用的 lvs 实例的数据上下文。感谢大家的回复。