我创建了自定义控件,其中包含用于显示颜色的组合框和一个依赖属性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>
因此,如果独立测试,自定义控件和依赖属性都可以正常工作。但是当尝试通过另一个依赖属性设置自定义控件属性时它不起作用。