相关疑难解决方法(0)

绑定到静态属性

我很难将简单的静态字符串属性绑定到文本框.

这是具有静态属性的类:

public class VersionManager
{
    private static string filterString;

    public static string FilterString
    {
        get { return filterString; }
        set { filterString = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的xaml中,我只想将此静态属性绑定到文本框:

<TextBox>
    <TextBox.Text>
        <Binding Source="{x:Static local:VersionManager.FilterString}"/>
    </TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

所有内容都编译,但在运行时,我得到以下异常:

无法将属性"Source"中的值转换为"System.Windows.Markup.StaticExtension"类型的对象.标记文件'BurnDisk中的对象'System.Windows.Data.Binding'出错;组件/ selectversionpagefunction.xaml'第57行位置29.

知道我做错了什么吗?

data-binding wpf xaml

163
推荐指数
9
解决办法
16万
查看次数

INotifyPropertyChanged和静态属性

我把自己绑在一个简单的问题上.我有一个实现的类INotifyPropertyChanged.某些实例属性的getter使用静态属性,因此如果静态属性发生变化,它们的值可能会发生变化?这是一个简化的例子.

class ExampleClass : INotifyPropertyChanged
{

    private static int _MinimumLength = 5;
    public static int MinimumLength
    {
        get
        {
            return _MinimumLength;
        }
        set
        {
            if (_MinimumLength != value)
            {
                _MinimumLength = value;
                //WHAT GOES HERE
            }
        }
    }

    private int _length = -1;
    public int length
    {
        get
        {
            return (_length > _MinimumLength) ? _length : _MinimumLength;
        }
        set
        {
            var oldValue = (_length > _MinimumLength) ? _length : _MinimumLength;
            if (_length != value)
            {
                _length = value; …
Run Code Online (Sandbox Code Playgroud)

.net c# static inotifypropertychanged

18
推荐指数
2
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

data-binding ×1

inotifypropertychanged ×1

static ×1

wpf ×1

xaml ×1