簡體   English   中英

綁定到靜態類的靜態屬性不起作用

[英]Binding to an Static property of an Static class doesn't work

我試圖將TextBlockText屬性BindStaticClass.Percent 由於無法執行此操作(或者可以執行?),因此我在ViewModel定義了LoadingPercent ,以便可以綁定到它。 它仍然無法正常工作。 我該如何解決? 還是可以直接綁定到StaticClass而忽略ViewModel方法?

<Window x:Class="TestBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:testBinding="clr-namespace:TestBinding"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <testBinding:ViewModel/>
    </Window.DataContext>
    <StackPanel>
        <TextBlock Width="100" 
                   HorizontalAlignment="Center"
                   Text="{Binding LoadingPercent}"/>
        <Button Content="Change" 
                Width="200" 
                Height="30" 
                Margin="0 20 0 0" 
                HorizontalAlignment="Center"
                Click="ChangeText"/>
    </StackPanel>
</Window>

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ChangeText(object sender, RoutedEventArgs e)
    {
        StaticClass.Percentage = 10;
    }
}

public class ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private double loadingPercent;
    public double LoadingPercent
    {
        get { return StaticClass.Percentage; }
        set
        {
            loadingPercent = value;
            RaisePropertyChanged("LoadingPercent");
        }
    }

    private void RaisePropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

public static class StaticClass
{
    public static int Percentage { get; set; }
}

這是一個錯誤:

private double loadingPercent;
public double LoadingPercent
{
    get { return StaticClass.Percentage; }
    set
    {
        loadingPercent = value;
        RaisePropertyChanged("LoadingPercent");
    }
}

你返回getStaticClass.Percentage但分配loadingPercent在集。

我不確定為什么畢竟需要靜態類,但是如果您想拋棄viewmodel並直接綁定到static屬性, 請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM