私はこのように定義されたクラスを持っています (短くするために、null チェックのようないくつかのコード行を削除しました):
public sealed class CodeTheme : INotifyPropertyChanged
{
public void Reload()
{
PropertyChanged(sender, new PropertyChangedEventArgs("MyProperty"));
}
public Thickness MyProperty
{
get
{
return new Thickness():
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
StandardStyles.xaml を使用して、このように XAML で codetheme クラスを登録しています。
<me:CodeTheme x:Key="Theming" />
それよりも、次のようにさまざまなテンプレートとスタイルで使用しています。
<Style x:Key="Style1" TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="Margin" Value="{Binding Source={StaticResource Theming}, Path=MyProperty}" />
</Style>
次に、プログラム内のいつでも、App.xaml.csReload
の上書きイベントで初めてメソッドを呼び出すことができます。OnLaunched
これは、色、文字列、およびその他の厚さの値を に割り当てるときに機能しDataTemplate
ます。ただし、で使用すると、イベントStyle
を発生させるとすぐに次のエラーが発生します。PropertyChanged
System.UnauthorizedAccessException はユーザー コードによって処理されませんでした。HResult=-2147024891 Message=アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED)) Source=System StackTrace: (私はこれを削除しました) InnerException:
RunAsync
からイベントを発生させようとしましたWindow.Current.Dispatcher
が、何も変わりませんでした。ここで何が間違っていますか?