- WPF Dependency Properties Settings binding doesnt update
- public static readonly DependencyProperty FileTextProperty;
- //Constructor
- static FileButton()
- {
- DefaultStyleKeyProperty.OverrideMetadata(typeof(FileButton), new FrameworkPropertyMetadata(typeof(FileButton)));
- // Initialize dependency properties
- FileTextProperty = DependencyProperty.Register("FileText", typeof(string), typeof(FileButton), new UIPropertyMetadata ("Default File Text"));
- }
- /// <summary>
- /// The Filename text displayed by the button.
- /// </summary>
- [Description("The text displayed by the button."), Category("Common Properties")]
- public string FileText
- {
- get { return (string)GetValue(FileTextProperty); }
- set { SetValue(FileTextProperty, value); }
- }
- <Style x:Key="ButtonFocusVisual">
- <Setter Property="Control.Template">
- <Setter.Value>
- <ControlTemplate>
- <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="GradientStyle" TargetType="{x:Type Button}">
- <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
- <Setter Property="Background" Value="{StaticResource ButtonNormalBackground}"/>
- <Setter Property="BorderBrush" Value="{StaticResource ButtonNormalBorder}"/>
- <Setter Property="BorderThickness" Value="1"/>
- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
- <Setter Property="HorizontalContentAlignment" Value="Center"/>
- <Setter Property="VerticalContentAlignment" Value="Center"/>
- <Setter Property="Padding" Value="1"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type local:FileButton}">
- <Grid x:Name="main" MinHeight="38" MaxHeight="38">
- <Grid Margin="4,0" Name="DisplayMain">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition/>
- </Grid.RowDefinitions>
- <TextBlock x:Name="fileText" HorizontalAlignment="Stretch" Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=local:FileButton, AncestorLevel=1}, Path=FileText}" TextWrapping="NoWrap" VerticalAlignment="Top" Grid.Column="0" Margin="4,0,0,0" TextTrimming="WordEllipsis"/>
- </Grid>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </ControlTemplate.Resources>
- <Grid x:Name="LayoutRoot" Margin="0">
- <local:FileButton Style="{DynamicResource GradientStyle}"/>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Grid x:Name="LayoutRoot">
- <Button VerticalAlignment="Top" Margin="132,140,168,0" Height="54.96">
- <StackPanel>
- <Image Source="{Binding Icon}"></Image>
- <TextBlock Text="{Binding FileName}" HorizontalAlignment="Left"/>
- </StackPanel>
- </Button>
- </Grid>
- <TextBlock Text="{TemplateBinding FileText}" />