Most Helpful Guy
You are a smart and practical girl, and I'm sure he appreciates that in many other ways, but in this case, he wasn't buying you a dress because he thought you needed one, he was buying it becasue he wanted to show you how much he cared about you and how much he wanted to make you happy.
You rejected his gift with the best of intentions, but you still rejected it, and he's hurt by that. As long as he can afford to buy you something occasionally, and isn't going into debt or spending a stupid amount of money, it's okay. Accept those occasional gifts graciously and thankfully, and be practical in other ways. That's win-win.