Since all bitcoin transactions are public, I guess that all transactions could be summed up to get any wallet's balance. Thus sharing a wallet's address means sharing the whole wallet's data. Even using a proxy wallet would not hide the pattern of expenditure thus potentially revealing where the Bitcoins are being spent. Is there a way to be able to receive payments in Bitcoin, yet keep the balance concealed?
Bitcoin does not offer any way to conceal the transaction amounts.
However, there are techniques such as Coinjoin that allow you to batch your transaction with multiple other peoples', preventing someone from easily identifying which input and outputs belong to you, and making it harder to follow a spending or consolidation trail.
Additionally, it is recommended that addresses are only used for 1 input/output set. Any reasonably modern wallet will give you a new receiving address each time the previous one has a tx, preventing people from tracking your entire wallet with just a single address (provided you aren't regularly consolidating to a single address).
Looks like you misunderstood what is the wallet and the address. Wallet is not an address, wallet is a bunch of addresses.
An address is a single-use token
Addresses are not wallets, and do not carry balances.
Thus sharing a wallet's address means sharing the whole wallet's data.
Addresses in this particular wallet doesn't related each other, therefore if you know one address you can't calculate the balance of all wallet.