[英]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.