You use "interfaces" to hook models and view "code behind". The interface only includes elements that would be valid in say a "Standard library". When that won't do, you use a "converter"; e.g. a boolean to visibility converter (one way or two way); since "visibility" is a UI enum. BTW, MS is "slanting" away from MVVM due to its impact on "performance" (compiler limitations and "indirection").