How are public and private keys related to the wallet? I understand that all the Bitcoin protocol is based on an asymmetric cryptography. 

A user gets 2 keys (public and private). How do these keys connect to the Bitcoins?

How are the keys are related to the wallet? How can I decide how many Bitcoins to transfer when using my private key?
Thomas' answer is correct, but I think an easy version may be appreciated as well.

I suppose you know the concept of public key cryptography? If you don't, here is a very short explanation (or read the wikipedia page): Public key cryptography (as used in Bitcoin), allows you to hand people a public key and use the corresponding private key to prove the ownership. So you can create any random private key (keep it secret) and calculate the corresponding public key (give it out to public for verification). Using this private key, you can sign a message and other people can verify that you own the private key by using your public key.

So, applied to Bitcoin.

A Bitcoin address is just a shorthand notation for a public key. When someone makes a transaction to an address, he states that "I give the right to spend this money to the person who owns the private key corresponding to this address".
The person who has received this transaction will in turn be able to spend the transaction by signing the transaction using his private key. With this signature he can prove that he owns the key, without disclosing it. Others can verify the signature using the public key.

As for the second part of your question, it gets a little more advanced. An easy way of viewing it is that every transaction takes a number of inputs and generates a number of outputs. Inputs in this case are outputs from previous transactions. For each input, the user will have to provide verification he is allowed to spend that output by adding a signature.