gpt4 book ai didi

wpf - 验证命令以仅允许在数据库中输入1行

转载 作者:行者123 更新时间:2023-12-03 10:16:25 25 4
gpt4 key购买 nike

我正在创建一个应用程序,允许用户使用MVVM和EF将其详细信息输入数据库。我有一个用户控件,它允许用户向数据库中输入一组详细信息。

在此应用程序中,view-model包含属性,命令和CRUD操作。

我要实现的是允许使用此应用程序的用户输入他们的详细信息,但是一旦在数据库中输入了一行,就完全禁用command或抛出一个异常,指出已添加一行。

我有一个tab control供用户输入他们的详细信息,然后为他们提供数据网格以直观地查看已添加的详细信息。

这有可能实现吗?怎么做?遍历各行,然后找到该行?

这是与我相关的代码片段;

View 模型;

    private ICommand _AddCommand;
public ICommand AddCommand
{
get
{
if (this._AddCommand == null)
{
this._AddCommand = new RelayCommand(this.SaveExecute, this.SaveCanExecute);
}

return this._AddCommand;
}
}

private bool SaveCanExecute()
{
return !string.IsNullOrEmpty(Name);
}

private void SaveExecute()
{
InsertDetail();
}

xaml;
     <Button Content="Save" Grid.Row="9" Name="btnSave" VerticalAlignment="Top" Grid.Column="1" Width="75"
Command="{Binding AddCommand}" />

感谢您的帮助或指导,因为我是WPF和MVVM的新手。

最佳答案

您可以使用EF创建count方法,然后在SaveExecute()命令方法中调用count,类似这样;

public int Count(int _ID)
{
DBEntities context = new DBEntities();

return (from o in context.Entities
where o.EntityID == _ID
select o.EntityID).Count();
}

然后,在您的命令方法中;
    private void SaveExecute() //RelayCommand
{
if (Count(1) == 0)
{
InsertDetails(this); //Insert method using EF
MessageBox.Show("Items have been addded.");
}
else
{
MessageBox.Show("An Item already exists, unable to add another one.");
}
}

希望这可以帮助!

关于wpf - 验证命令以仅允许在数据库中输入1行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com