我的解决方案分为不同的项目。
我想重用存储在其他项目引用的公共项目中的视图。 所以,我们假设我有一个自定义视图,它是一个自定义按钮:
<Button BorderThickness="0" Padding="0" Margin="0,0,0,0" Style="{StaticResource CommonButtonStyle}" VerticalAlignment="Bottom" HorizontalAlignment="Center">
<Button.Content>
<Grid Margin="0,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock HorizontalAlignment="Center" Grid.Row="0" x:Name="Title" Style="{StaticResource CommonButtonTitleStyle}" Margin="0" />
<TextBlock Margin="0,0,0,0" HorizontalAlignment="Center" x:Name="SubTitle" Grid.Row="1" Style="{StaticResource CommonButtonSubTitleStyle}" />
</Grid>
</Button.Content>
</Button>
我应该为每个视图创建一个ViewModel(我必须为特定视图创建属性和命令),以便使用我的自定义按钮填充StackPanel吗?
更新:
我最终创建了一个包含我的按钮的UserControl,其中设置了TextBlock的文本和按钮命令。 然后我创建了一个带有属性和RelayCommand所需的抽象视图模型。
创建了View模型,扩展了我的抽象视图模型,为我需要的每个按钮为我的RelayCommand实现不同的操作。
感谢您的反馈。
答案 0 :(得分:2)
如果您想制作可重复使用的控件,最佳解决方案是创建一个新的UserControl。
此处的示例应足以让您入门。
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714088(v=vs.105).aspx
如果你想用你的Button填充你的StackPanel,你只需要导入CustomUserControl的命名空间,并像任何其他控件一样将它添加到XAML。