2010-07-28 65 views
2

我有自定义样式的按钮,我想将样式项绑定到按钮datacontext。 如何做到这一点?Silverlight。将样式项绑定到datacontext

我尝试:

<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;} 
} 
+0

你是否试图绑定到资源名称存储在ContextText中的样式?你能澄清你到底想做什么吗? – Stephan 2010-07-28 16:23:11

回答

4

嗯...这是你找什么: -

<Button x:Name="button" Content="{Binding ContextText}" Style="{StaticResource ButtonStyle1}" Margin="165,86,0,0"/> 

我几乎不好意思提交,它似乎是101.

0

这个e xample实际上工作时,我将代码从按钮点击到方法到构造函数。

相关问题