C# 如何在XAML中从文本框中获取值?
我试图从文本框中获取值,以更新我的数据库 这是我的XAML代码:C# 如何在XAML中从文本框中获取值?,c#,wpf,database,xaml,C#,Wpf,Database,Xaml,我试图从文本框中获取值,以更新我的数据库 这是我的XAML代码: <Window x:Class="Banken.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:Banken.vi
<Window x:Class="Banken.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:Banken.viewmodel"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF45"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Title="Bank" Height="350" Width="525">
<Window.DataContext>
<vm:AccountVM/>
</Window.DataContext>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ListBox Margin="8" ItemsSource="{Binding Accounts}" SelectedItem="{Binding SelectedAcc}" DisplayMemberPath="AccountHolder"/>
<StackPanel Margin="8" Grid.Column="1">
<Label Content="Accountholder:"/>
<Label FontWeight="Bold" FontSize="10" Height="25px" Content="{Binding SelectedAcc.AccountHolder}"/>
<Label Content="Accountnumber:"/>
<Label FontWeight="Bold" FontSize="10" Height="25px" Content="{Binding SelectedAcc.AccountNumber}"/>
<Label Content="Balance:"/>
<Label FontWeight="Bold" FontSize="10" Height="25px" Content="{Binding SelectedAcc.Balance}"/>
<Label Content="Transfer to:"/>
<ComboBox ItemsSource="{Binding Path=Accounts}" DisplayMemberPath="AccountHolder" SelectedValuePath="AccountHolder" SelectedValue="{Binding Path=Accounts}" />
<Label Content="Amount:"/>
<TextBox InputScope="Number" Name="Amount"></TextBox>
<StackPanel Orientation="Horizontal" Margin="0,16,0,0">
<Button Content="Transfer money" Command="{Binding UpdateAccount}" Width="250"/>
</StackPanel>
</StackPanel>
</Grid>
</Window>
当我硬编码其中的值时,这一切都非常有效,但我似乎找不到一种方法来获取文本框中的值?试试这个
<Button Content="Transfer money" Command="{Binding UpdateAccount}" CommandParameter="{Binding Text, ElementName=Amount}" Width="250"/>
这里我们将CommandParameter绑定到文本框的文本。或者将按钮上的命令参数绑定到文本框的文本属性 {绑定文本,elementname=…}
。。。或者将文本框的文本属性绑定到viewmodel中的值。然后在您的命令操作中拾取它。这很有效!后来我做了:
public void UpdateAccount1(字符串金额){Account.UpdateAccount(SelectedAcc,Convert.ToInt32(金额));}
public static void UpdateAccount(Account a, int Amount)
{
string sql = "UPDATE Accounts SET Saldo=Saldo-@Amount WHERE ID=@ID";
DbParameter par1 = Database.AddParameter("@Amount", Amount);
DbParameter par2 = Database.AddParameter("@ID", a.ID);
Database.ModifyData(sql, par1, par2);
Console.WriteLine(a.ID + " was edited");
}
<Button Content="Transfer money" Command="{Binding UpdateAccount}" CommandParameter="{Binding Text, ElementName=Amount}" Width="250"/>