3

、 にバインドされたをListBox持つウィンドウがあります。のはコードでコレクションに設定されます。とを構成するとのバインディングは XAML で設定されます。これまでのところ、とても慣習的です。ただし、実行時にフォント サイズ/ファミリを設定する必要があります。現在、この情報は静的 cGlobals クラスに保持されています。したがって、をコレクションにバインドできるようにする必要がありますが、プロパティをプロパティにバインドできます。以下の XAML でスケッチされているバインディングを介して、またはコードでこれを行うにはどうすればよいですか?DataTemplateObservableCollectionLogItemsItemsSourceListBoxTextBoxTextBlockDataTemplateTextBlockTextBlock.TextLogItemsTextBlock.FontSizecGlobals.LogFontSize

       <ListBox   . . .  .  >

        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid  HorizontalAlignment="Stretch" . . .  . >

                    <Grid.RowDefinitions>
                        <RowDefinition  Height="20"  />
                        <RowDefinition Height="*" MinHeight="40" />
                    </Grid.RowDefinitions>

                    <TextBox Grid.Row="0"  Background="Honeydew" Text="{Binding  Mode=OneWay, Path=Header,  . . . . />
                    <TextBlock FontSize="{Binding ??????}"  Grid.Row="1" Text="{Binding  Path=BodyText}"  />

                </Grid>
            </DataTemplate >
        </ListBox.ItemTemplate >
    </ListBox>
4

2 に答える 2

1

xaml

<Window x:Class="WpfApplication6.StaticBinding"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication6"

    Title="StaticBinding" Height="300" Width="300">
<Grid>
    <TextBlock FontSize="{Binding Source={x:Static local:Global.FontSize}}" Text="abc"/>
</Grid>

グローバル

public class Global
{ 
    public static double FontSize
    {
        get { return 20.0; }
    }
}
于 2013-08-08T00:38:53.073 に答える