0

私は検索して、これを行うために多くのことを試しました。このような XAML コードを実行することにより、複数の XAML フレームに正常にバインドされるスタイルがあります。スタイルの名前は ViewPersonTextboxDataStyle です。

<TextBox Grid.Row="5" Grid.Column="1" Name="textboxName" Text="{Binding textboxName}" Margin="5,5,5,5" Style="{StaticResource ViewPersonTextboxDataStyle}"/>

したがって、コード ビハインドでグリッド行と定義を作成する別のフレームに到達したとき、これを試してみましたが、これは正しいと思いました。

var resourceDictionary = new ResourceDictionary()
{
    Source = new Uri("ms-appx:///Common/StandardStyles.xaml", UriKind.Absolute)
};
var style = resourceDictionary["ViewPersonTextboxDataStyle"] as Style;
textBlock.Style = resourceDictionary["ViewPersonTextboxDataStyle"] as Style;

この時点で、スタイルが正しく設定されているため、リソース ディクショナリでスタイルが見つかったことがわかります。ただし、textBlock.Style に割り当てると、壊滅的な例外が発生します。したがって、ステップが欠落しているか、これが正しくありません。

これに関するネット情報はあまりありません。

4

2 に答える 2

1

わかりました。Raghavendra さん、ありがとうございます。これは、私が試みていたことが的外れではないことを示す正しい方向を示してくれました。

私が最終的に得たものは次のとおりです。

style = Application.Current.Resources["ViewPersonTextDataStyle"] as Style;
textBlock.Style = style;

Raghavendra の言うとおりです。リソース マネージャーを使用する必要はなく、ローカル XAML でリソース マネージャーを定義する必要もありません。とにかく、すべてのフレームに current を割り当てることで、上記の行を使用しました。

それで、私の例外は IDIOT (つまり私) の例外でした。TEXTBOX スタイルではなく、TEXTBLOCK スタイルを使用する必要がありました。テキストボックス スタイルをテキストブロックに割り当てると、例外が発生していました。

于 2013-05-27T17:27:49.313 に答える