在我的登录视图中,我有一个“没有帐户?”按钮,当按下它时,会打开一个对话框。这个对话框包含一个注册视图。
<dialogHostAvalonia:DialogHost Identifier="NoAccountDialogHost"
Grid.ColumnSpan="2"
Grid.RowSpan="5"
>
<dialogHostAvalonia:DialogHost.DataTemplates>
<DataTemplate DataType="viewmodels:RegisterVM">
<views:RegisterView />
</DataTemplate>
</dialogHostAvalonia:DialogHost.DataTemplates>
</dialogHostAvalonia:DialogHost>
字符串
对话框打开得很好。
register视图有3个文本框,绑定到register视图模型中的3个属性,它们工作得很好,还有一个“REGISTER”按钮。当按下时,这个按钮应该将用户添加到数据库中,然后关闭对话框。这是命令的外观:
private void AddAccountToDB(DialogHost dialog)
{
//add
using (var context = new DatabaseContext())
{
var user = new User(Utilities.GenerateUserId() , Username!, Password! , Email!);
context.Credentials.Add(user);
context.SaveChanges();
}
//close dialog
dialog.CurrentSession!.Close();
}
型
正如你所看到的,从按钮我发送,作为一个参数,DialogHost示例。所以我这样做了:
CommandParameter="{RelativeSource AncestorType={x:Type
dialogHostAvalonia:DialogHost},Mode=FindAncestor}"
型
当我点击“REGISTER”的时候,在Program.cs:x1c 0d1x中出现了一个错误。很明显,这个错误来自命令参数。我一定是做错了什么。任何帮助都将不胜感激!
1条答案
按热度按时间mzmfm0qo1#
您提供了一个RelativeSource作为参数。您忘记包含绑定,以便它解析相对源。
字符串