When my daughter grew old enough to talk, I started trying to explain everything to her:
"You can't have a snack because it's close to lunch time"
The main thing this accomplished was that she quickly became good at explaining her view on things:
"I can have a snack, because snacks are very good, and I want one."
I still believe that it's best to explain things as much as possible. However, trying to convince a child to do something by explaining to them why they need to do it is often an
exercise in futility, especially when the child is
strong-willed. A parent who relies on that approach becomes the one you hear in public places (like playgrounds, for instance):
(In a high pitched, pleading tone) Come on, sweetie, we really need to go now.... It's getting late, and Mommy has things to do.... Okay, just one more minute... Come on, now sweetie, please.... Honey, we need to get home so I can start making supper.... (and so on)
In the end, a parent (or other adult in charge of a child) needs to be able to tell the kid what to do. You need to establish the fact that, in the end, you are in charge. Certainly, respect their opinions, give them choices when you can, explain things to them when the time is right, but the bottom line is -- there will be times when you need your child to do what you tell them.
An obvious example -- if they're dashing toward the road, do you say "Honey, I don't think that's a good idea, please stop because the cars might hit you." or do you say "STOP!" ?
When you have some time, and the child is in a receptive mood (it does happen, now and again), talk to them about the fact that when you tell them to do (or not do) something, it's important for them to listen, and to do what you say. Let them know that, as they get older, they will be able to make more decisions for themselves. They're still going to ask "why", or say "no", or flat out ignore you, but they'll begin to understand that you do have reasons when you tell them what to do.