如何使用VM的数据绑定将简单wpf标记提取到usercontrol
问这个问题我觉得很傻,但我整个周末都在阅读微软和非微软的文档,这些文档要么过于简单化,要么涵盖了一些与我无关的奇怪的深奥案例 我需要的是非常简单的。我有一些加价如何使用VM的数据绑定将简单wpf标记提取到usercontrol,wpf,xaml,user-controls,Wpf,Xaml,User Controls,问这个问题我觉得很傻,但我整个周末都在阅读微软和非微软的文档,这些文档要么过于简单化,要么涵盖了一些与我无关的奇怪的深奥案例 我需要的是非常简单的。我有一些加价 <Viewbox Grid.Row="1" Margin="55,3,15,0"> <Grid> <Grid.ColumnDefinitions> <C
<Viewbox Grid.Row="1" Margin="55,3,15,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="303*"></ColumnDefinition>
<ColumnDefinition Width="156*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding TextSettings.PlayerNumber}" />
<TextBlock Grid.Column="1" Text="{Binding PlayerNumber}" />
</Grid>
</Viewbox>
出于各种原因,我希望该viewbox的内容位于另一个文件中。它甚至不必是可重用的,它只需要在一个UserControl中,我可以包括,也可以不包括,或者根据应用程序状态包括一个不同的UserControl
我不明白的是如何将网格
移动到自己的用户控件中,并让绑定继续工作。我假设我必须通过一个参数将ViewModel从父视图传递到子视图,但在我的一生中,我找不到正确语法的示例
所以。如果要将其移动到自己的用户控件
您的数据上下文将继承到可视化树中。因此,只需定义您的
UserControl
<UserControl x:Class="WpfApplication1.MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="303*"></ColumnDefinition>
<ColumnDefinition Width="156*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding TextSettings.PlayerNumber}" />
<TextBlock Grid.Column="1" Text="{Binding PlayerNumber}" />
</Grid>
</UserControl>
然后使用它:
<Viewbox Grid.Row="1" Margin="55,3,15,0">
<local:MyUserControl/>
</Viewbox>
<Viewbox Grid.Row="1" Margin="55,3,15,0">
<local:MyUserControl/>
</Viewbox>