I like C# but loathe XAML and WPF. I develop an app with rather simple UI. WPF makes hard things easy but easy things hard. I'm moving to Qt.
But it requires you fully embracing the data binding rules of the platform.
Pretty sure that can be solved by implementing IDisposable and having Dispose call back into C++ to free resources. Probably if you add a managed C++ layer in between this is sort of built-in.
Oh and like skc says: the validation you're after does work as well, though I admit it takes some time to figure out exactly how to do it.