gpt4 book ai didi

在 UserControl 中使用依赖属性的 wpf 问题

转载 作者:行者123 更新时间:2023-12-04 05:22:12 28 4
gpt4 key购买 nike

我制作了一个用户控件,它打算每隔几秒钟使用来自串行端口的数据更新一次。这个 UserControl 应该非常简单,由一个用于字段名称的标签和另一个包含字段值的标签组成。我说它应该很简单,但它不起作用。它根本不更新,甚至不显示字段名称。

下面是代码:

public partial class LabeledField : UserControl {

public LabeledField() {
InitializeComponent();
}

public string fieldName {
get { return fieldNameLabel.Content.ToString(); }
set { fieldNameLabel.Content = value; }
}

public string fieldValue {
get { return (string)GetValue(fieldValueProperty); }
set { SetValue(fieldValueProperty, value); }
}

public static readonly DependencyProperty fieldValueProperty =
DependencyProperty.Register(
"fieldValue",
typeof(string),
typeof(LabeledField),
new FrameworkPropertyMetadata(
"No Data"
)
)
;
}

这是 XAML:
<UserControl x:Class="DAS1.LabeledField" Name="LF"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Orientation="Horizontal">
<Label Width="100" Height="30" Background="Gray" Name="fieldNameLabel" />
<Label Width="100" Height="30" Background="Silver" Name="fieldValueLabel" Content="{Binding fieldValue}" />
</StackPanel>

这是引用 UserControl 的 Window 的 XAML。首先是标题:
<Window x:Class="DAS1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:me="clr-namespace:DAS1"
Title="Window1" Height="580" Width="780">

然后是 UserControl 本身:
<me:LabeledField fieldName="Test" Width="200" Height="30" fieldValue="{Binding businessObjectField}"/>

如果我知道要问一个更具体的问题,我会——但谁能告诉我为什么这不起作用?

最佳答案

事实证明,在用户控件的 XAML 中,绑定(bind)被错误地指定。

原来是:

<Label Width="100" Height="30" Name="fieldValueLabel" Content="{Binding fieldValue}" />

但是我没有指定 fieldValue 所属的元素。应该是(假设我的用户控件名为“LF”:
<Label Width="100" Height="30" Name="fieldValueLabel" Content="{Binding ElementName=LF, Path=fieldValue}" />

关于在 UserControl 中使用依赖属性的 wpf 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1145435/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com