3

AlarmSettings というユーザー コントロールがあり、ユーザー コントロールのリソース ディクショナリには、カスタム クラス「AlarmClock」のインスタンスが含まれています。AlarmClock には、AlarmName という依存関係プロパティがあります。アクセスできません。"

これは私のユーザーコントロールです:

<UserControl x:Class="ChangeSet.AlarmSettings"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
xmlns:alarm="clr-namespace:ChangeSet.Alarm;assembly=ChangeSet"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
d:DesignHeight="480" d:DesignWidth="480" >

<UserControl.Resources>     
    <alarm:AlarmClock x:Key="alarmClock" AlarmName="{Binding ElementName=AlarmSettings, Path=Name}"/>
</UserControl.Resources>

これは私の AlarmClock クラスです:

public class AlarmClock: DependencyObject
{

    public AlarmClock()
    {
        PopulateSettingsOptions();
    }

    public string AlarmName 
    {
        get { return GetValue(AlarmNameProperty).ToString(); }
        set { SetValue(AlarmNameProperty, value); }
    }

    public static readonly DependencyProperty AlarmNameProperty =
        DependencyProperty.Register("AlarmName", typeof(string), typeof(AlarmClock), new PropertyMetadata("DefaultAlarm"));

注: AlarmName を AlarmSettings ユーザー コントロールの Name プロパティにバインドしようとしていますが、バインドを削除して AlarmName 依存関係プロパティを文字列に設定しようとしても、同じエラーが発生します。

4

5 に答える 5

3

プロジェクトをある場所から別の場所に移動し、再度開いたときに依存関係プロパティで同じ問題が発生しました。再構築するだけで、エラーは解決しました。

于 2015-10-13T08:33:58.047 に答える
0

DataContextあなたのuserControlは何ですか?

クラス alarmClock に空のコンストラクターを追加します。

于 2013-05-03T12:13:54.490 に答える
0

VS で「構成マネージャー...」を開きます。プロジェクトが同じプラットフォーム (x64 など) にあるかどうかを確認します。

于 2018-04-17T03:30:34.943 に答える