我应该在创建用户控件时尝试跟踪MVVM

Pau*_*aul 2 c# wpf user-controls mvvm

我在WPF中重新创建一个小应用程序,我试图在有意义的地方使用MVVM.我开始以为我会100%使用它,到目前为止,我已经得出结论,严格的MVVM(没有任何代码隐藏)不一定是积极的事情.

现在我正在尝试创建一个绑定到列表的用户控件,并为列表中的每个项创建一个常规按钮.(基本上我正在重新创建一个列表框但是具有不同的风格.)我正在专门制作这个用户控件,以避免在主窗口的代码隐藏中动态创建按钮,但我在想,因为一切都基本上是"查看",所有逻辑都将在其他地方完成,我可以在代码中添加按钮,而不会在技术上破坏MVVM.这种思路是否正确,存在严重缺陷或介于两者之间?谢谢你的帮助!

Tho*_*que 6

严格的MVVM(没有任何代码隐藏)

MVVM并不禁止使用代码隐藏...有时候代码隐藏正确的做某事的地方,只要它纯粹与UI相关.

然而,在这种情况下,我没有看到在代码隐藏创建这些按钮,当你可以很容易做出的好处ItemsControlItemTemplate将显示按钮的集合中的每个项目.

<ItemsControl ItemsSource="{Binding YourCollection}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button Content="{Binding Text}" Command="{Binding DoSomethingCommand}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)