C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – WPF自定义控件DependencyProperty不会数据绑定大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的用户控件叫做SetSpeed:

<UserControl x:Class="AGWPFControls.SetSpeed"
             xmlns="http://scheR_981_11845@as.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://scheR_981_11845@as.microsoft.com/winfx/2006/xaml"
             MinHeight="50" MinWidth="110">
    <Canvas>
        <Slider Name="sldSetSpeed" MinWidth="100" Canvas.Top="5" Canvas.Left="5" />
        <TextBox Name="txtSpeed" MinWidth="100" Canvas.bottom="5" Canvas.Right="5" 
                Text="{Binding ElementName=sldSetSpeed,Path=value}" />
    </Canvas>
</UserControl>

它有一个名为Speed的DependencyProperty:

public partial class SetSpeed : UserControl
{
    public SetSpeed()
    {
        InitializeComponent();
    }
    public static readonly DependencyProperty SpeedProperty;
    static SetSpeed()
    {
        var md = new FrameworkPropertyMetadata(0.0);
        SetSpeed.SpeedProperty = DependencyProperty.Register(
            "Speed",typeof(doublE),typeof(SetSpeed),md);
    }
    public double Speed
    {
        get { return (doublE)GetValue(SetSpeed.SpeedProperty); }
        set { SETVALue(SetSpeed.SpeedProperty,value); }
    }
}

我已将控件放在Window中并将元素(任何元素)绑定到它:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://scheR_981_11845@as.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://scheR_981_11845@as.microsoft.com/winfx/2006/xaml"
        title="MainWindow" xmlns:my="clr-namespace:AGWPFControls;assembly=AGWPFControls">
    <StackPanel>
        <my:SetSpeed Name="setSpeed1" />
        <TextBlock Text="{Binding ElementName=setSpeed1,Path=SpeeD}" />
    </StackPanel>
</Window>

它很简单.不过没有骰子.当我移动滑块时,TextBlock中的值永远不会改变.我错过了什么,这里?

解决方法

看起来你没有将Slider绑定到依赖属性.就像是:

<UserControl x:Name="userControl" x:Class="AGWPFControls.SetSpeed"
             xmlns="http://scheR_981_11845@as.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://scheR_981_11845@as.microsoft.com/winfx/2006/xaml"
             MinHeight="50" MinWidth="110">
    <Canvas>
        <Slider Name="sldSetSpeed" MinWidth="100" Canvas.Top="5" Canvas.Left="5"
                Value="{Binding Speed,ElementName=userControl,Mode=TwoWay}" />
        <TextBox Name="txtSpeed" MinWidth="100" Canvas.bottom="5" Canvas.Right="5" 
                Text="{Binding ElementName=sldSetSpeed,Path=value}" />
    </Canvas>
</UserControl>

大佬总结

以上是大佬教程为你收集整理的c# – WPF自定义控件DependencyProperty不会数据绑定全部内容,希望文章能够帮你解决c# – WPF自定义控件DependencyProperty不会数据绑定所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。