user3516841
user3516841

Reputation:

TextBox FontFamily Binding

<TextBox Style="{StaticResource HardBox}" Background="Transparent"  
      TextWrapping="Wrap" x:Name="TextBoxInsertText" 
      FontFamily="{Binding TopPanelViewModel.FontFamily,UpdateSourceTrigger=PropertyChanged}" 
      AcceptsReturn="True" AcceptsTab="True" ScrollViewer.VerticalScrollBarVisibility="Disabled"
      KeyUp="TextBoxInsertText_KeyDown" AllowDrop="True" IsUndoEnabled="True"
      Visibility="{Binding VisibilityPropertiesViewModel.Instance.InsertTextVisibility,Converter={StaticResource BooleanToVisibilityConverter}}">
</TextBox>

<ComboBox Height="20"  SelectedValue="{Binding TopPanelViewModel.FontFamily,UpdateSourceTrigger=PropertyChanged}"
       ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}" Name="Type_Font"   Width="120" Margin="20,0,10,0">
          <ComboBox.ItemTemplate>
             <DataTemplate>
                 <TextBlock FontFamily="{Binding .}" Text="{Binding Source}" FontSize="15"/>
             </DataTemplate>
          </ComboBox.ItemTemplate>
          <ComboBox.ToolTip>
              <TextBlock Text="{Binding LangiageViewModel.CurrentToolTips[25]}"></TextBlock>
          </ComboBox.ToolTip>
</ComboBox>


private System.Windows.Media.FontFamily fontfamily;
    public System.Windows.Media.FontFamily FontFamily
    {
        get
        {
            return this.fontfamily;
        }
        set
        {
            this.fontfamily = value;
            this.PropertyChanged(this, new PropertyChangedEventArgs("FontFamily"));
        }
    }

When the combobox selected item is changed,the textbox fontfamily does not change.

Upvotes: 1

Views: 2010

Answers (1)

123 456 789 0
123 456 789 0

Reputation: 10865

Change this your FontFamily binding in your TextBox

<TextBox Style="{StaticResource HardBox}" Background="Transparent"  
  TextWrapping="Wrap" x:Name="TextBoxInsertText" 
  FontFamily="{Binding ElementName="FontFamilyComboBox",Path=SelectedItem}" 
  AcceptsReturn="True" AcceptsTab="True" ScrollViewer.VerticalScrollBarVisibility="Disabled"
  KeyUp="TextBoxInsertText_KeyDown" AllowDrop="True" IsUndoEnabled="True"
  Visibility="{Binding VisibilityPropertiesViewModel.Instance.InsertTextVisibility,Converter={StaticResource BooleanToVisibilityConverter}}">

And add a Name value to your ComboBox

<ComboBox Height="20" x:Name="FontFamilyComboBox"  SelectedValue="{Binding TopPanelViewModel.FontFamily,UpdateSourceTrigger=PropertyChanged}"
       ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}" Name="Type_Font"   Width="120" Margin="20,0,10,0">
          <ComboBox.ItemTemplate>
             <DataTemplate>
                 <TextBlock FontFamily="{Binding .}" Text="{Binding Source}" FontSize="15"/>
             </DataTemplate>
          </ComboBox.ItemTemplate>
          <ComboBox.ToolTip>
              <TextBlock Text="{Binding LangiageViewModel.CurrentToolTips[25]}"></TextBlock>
          </ComboBox.ToolTip>
</ComboBox>

Upvotes: 1

Related Questions