簡體   English   中英

class 對象實例的數據綁定

[英]Databinding for Instances of class objects

作為序言,我是 WPF、XAML 和 C# 的新手

最近兩天我一直在尋找一種創建自定義 class object 的方法,該方法將公開一些屬性。 然后我想將 UI 中的一些文本框綁定到這些屬性,但我希望能夠為 class 的多個實例(在我的情況下為模擬)執行此操作。 我確信這很簡單,但我不明白如何解決這個問題。

class 示例:

class Analog
    {
        public string LblA0
        { get; set; }
    }

編輯:我已經弄清楚如何綁定到 class 但我不確定如何創建另一個 class 實例以單獨綁定。

<Grid>
   <Grid.DataContext>
       <local:Analog/>
   </Grid.DataContext>
   <TextBlock x:Name="labelAnalog0" 
                   Text="{Binding LblA0, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
                   Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>

編輯 2:ViewModel class?

class ViewModel
{
    public Analog Analog0
    { get; set; }
}

好的,感謝克萊門斯,我想我知道如何解決這個問題。 以下是我制作的課程:

    class Analog
{
    public Analog(string s)
    {
        lblA = s;
    }
    private string lblA;
    public string LblA
    {
        get
        {
            return lblA;
        }
        set
        {
            lblA = value;
        }
    }
}

class ViewModel
{
    Analog analog0 = new Analog("test");
    Analog analog1 = new Analog("test2");
    public Analog Analog0
    {
        get
        {
            return analog0;
        }
    }
    public Analog Analog1
    {
        get
        {
            return analog1;
        }
    }
}

XAML

<TextBlock x:Name="labelAnalog0" 
               Text="{Binding Analog0.LblA, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
               Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    <TextBlock x:Name="labelAnalog1" 
               Text="{Binding Analog1.LblA, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
               Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>

在主頁中更改數據上下文的調用

analogGrid.DataContext = new ViewModel();

暫無
暫無

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

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