簡體   English   中英

XAML綁定代碼無法正常工作

[英]XAML binding code not working

我有小問題。

代碼背后:

...
public struct Project
{
    string Name;
    string Path;
    public Project(string Name, string Path = "")
    {
       this.Name = Name;
       this.Path = Path;
    }
}
...

資源代碼:

<DataTemplate x:Key="ItemProjectTemplate">
        <StackPanel>
            <Image Source="Assets/project.png" Width="50" Height="50" />
            <TextBlock FontSize="22" Text="{Binding Name}" />
        </StackPanel>
</DataTemplate>

網格中的普通代碼:

<ListView Grid.Column="1" HorizontalAlignment="Left" Height="511" 
     Margin="25,72,0,0" Grid.Row="1" VerticalAlignment="Top" Width="423"
     x:Name="Projects" ItemTemplate="{StaticResource ItemProjectTemplate}" />

我對使用C#代碼設置的ListView源沒有任何問題,我的模板也正在加載。 但是當我運行我的應用程序時會發生這種情況:

項目名稱未顯示

如您所見,項目名稱(Project.Name )未顯示,但在我的ListView模板中是數據綁定,因此它應該可以工作。 有人知道為什么我的數據綁定文本不起作用? 請幫忙。

DataBinding適用於Properties而不適用於Fields 用類替換Struct並將字段設為屬性 -

public class Project
{
    public string Name {get; set;}
    public string Path {get; set;}
    public Project(string Name, string Path = "")
    {
       this.Name = Name;
       this.Path = Path;
    }
}

你必須綁定公共財產! 並使用類而不是結構。 結構按值傳遞給GUI,因此,您無法對實際的源項進行更改。

public class Project
{
    public string Name{ get; set;}
    public string Path{ get; set;}
    public Project(string Name, string Path = "")
    {
       this.Name = Name;
       this.Path = Path;
    }
}

暫無
暫無

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

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