CustomControl属性无法通过依赖项属性设置

时间:2012-10-28 19:36:56

标签: c# wpf wpf-controls

我创建了自定义控件,其中包含用于显示颜色的组合框和一个依赖项属性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>

因此,如果独立测试,自定义控件和依赖属性都可以正常工作。但是当它试图通过另一个依赖属性设置自定义控件属性时它不起作用。

0 个答案:

没有答案