我有一个应用程序,我使用MVVM在属性中设置元素的宽度。
我的风格:
<Style x:Key="TileRootSquareGridStyleV2" TargetType="Grid">
<Setter Property="Width" Value="{Binding DataContext.SquaredTileWidth , Mode=OneWay}" />
<Setter Property="Height" Value="{Binding DataContext.SquaredTileWidth, Mode=OneWay}" />
</Style>
我的DataTemplate:
<DataTemplate x:Key="PhoneFeedTemplateV2">
<Grid Margin="5" Style="{StaticResource TileRootSquareGridStyleV2}" >
<TextBlock Text="{Binding SquaredTileWidth}" />
</Grid>
</DataTemplate>
我希望能够重用我的样式TileRootSquareGridStyleV2,但我无法设置属性Width和Height。正确设置了我的对象中的SquaredTileWidth属性,因为当我启动应用程序时,我的文本块会显示一个数字。
有没有人知道我做错了什么?
编辑: 我也尝试过:
<Style x:Key="TileRootSquareGridStyleV2" TargetType="Grid">
<Setter Property="Width" Value="{Binding SquaredTileWidth , Mode=OneWay}" />
<Setter Property="Height" Value="{Binding SquaredTileWidth, Mode=OneWay}" />
</Style>
但没有运气。但是,当我在网格上设置高度和宽度时,它可以工作:
<DataTemplate x:Key="PhoneFeedTemplateV2">
<Grid Margin="5" Width="{Binding SquaredTileWidth}" Height="{Binding SquaredTileWidth}">
<TextBlock Text="{Binding SquaredTileWidth}" />
</Grid>
</DataTemplate>
EDIT2: 好的答案是:Setters不支持绑定....