1

色を表示するコンボ ボックスと 1 つの依存関係プロパティを含むカスタム コントロールを作成しましたSelectedIndex。ページでこのコントロールを使用し、mainwimdow.xamlページで宣言された依存関係プロパティを介して選択したインデックス値を設定しようとしました mainwimdow.xaml.cs

しかし、依存関係プロパティを介して値を設定すると機能せず、カスタム コントロール プロパティをmainwimdow.xamlページに直接設定すると正常に機能します。したがって、これは、依存関係プロパティを介して値が設定されていないだけで、カスタム コントロールが正常に機能していることを意味します。

これがコードです。

MainWindow.xaml.cs:

public partial class MainWindow : Window
{
    public static readonly DependencyProperty ConditionsSelectedIndexProperty = 
        DependencyProperty.Register(
           "ConditionsSelectedIndex", 
           typeof(int), 
           typeof(MainWindow), 
           new UIPropertyMetadata(3));

    public int ConditionsSelectedIndex
    {
        get { return (int)GetValue(ConditionsSelectedIndexProperty); }
        set { SetValue(ConditionsSelectedIndexProperty, value); }
    }

    public MainWindow()
    {
        InitializeComponent();
        SetCurrentValue(ConditionsSelectedIndexProperty, 5);
    }
}

MainWindow.xaml:

<controls:ColorComboBoxControl x:Name="cmbConditions" 
          SelectedIndex="{Binding ConditionsSelectedIndex}" 
          Grid.Row="0" Grid.Column="0" />

次のようなハードコードされた値を割り当てると、次のコードは正常に機能します

<controls:ColorComboBoxControl x:Name="cmbConditions" 
         SelectedIndex="5" Grid.Row="0" Grid.Column="0" />

依存関係プロパティが機能しているかどうかを確認するためにこれを試した場合、それは機能します

<TextBlock Text="{Binding Path=ConditionsSelectedIndex}"
           Grid.Column="1" Height="25" Margin="42,143,77,143" >
</TextBlock>

したがって、個別にテストすると、カスタム コントロールと依存関係プロパティの両方が正常に機能します。しかし、別の依存関係プロパティを介してカスタム コントロール プロパティを設定しようとすると、機能しません。

4

0 に答える 0