【发布时间】:2010-07-28 09:27:24
【问题描述】:
我有一个自定义样式的按钮,我想将项目样式设置为按钮数据上下文。 知道下面的代码有什么问题吗?
这就是我所做的:
<UserControl.Resources>
<Style x:Key="ButtonStyle1" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<TextBlock TextWrapping="Wrap" Text="{Binding ContextText}" DataContext="{TemplateBinding DataContext}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<Button Content="Button" Height="131" Width="103" HorizontalAlignment="Left" VerticalAlignment="Top" Click="Button_Click"/>
<Button x:Name="button" Style="{StaticResource ButtonStyle1}" Margin="165,86,0,0"/>
</Grid>
C#代码
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
button.DataContext=new Test(){ ContextText="TextFromContext"};
button.UpdateLayout();
}
}
public class Test
{
public String ContextText{get;set;}
}
【问题讨论】:
-
您是否尝试使用存储在 ContextText 中的名称绑定到来自资源的样式?你能澄清一下你到底想做什么。
标签: c# .net wpf silverlight