gpt4 book ai didi

wpf - xaml 中数据模板的设计时数据

转载 作者:行者123 更新时间:2023-12-04 00:53:14 25 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但是是否可以将一些示例数据定义为 DataContext 以便在 DesignView 中查看我的 DataTemplate?

目前我总是必须运行我的应用程序以查看我的更改是否有效。

例如使用以下代码 DesignView 只显示一个空列表框:

 <ListBox x:Name="standardLayoutListBox" ItemsSource="{Binding myListboxItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Column="0" Content="{Binding text1}" />
<Label Grid.Column="1" Content="{Binding text2}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

最佳答案

public class MyMockClass
{
public MyMockClass()
{
MyListBoxItems.Add(new MyDataClass() { text1 = "test text 1", text2 = "test text 2" });
MyListBoxItems.Add(new MyDataClass() { text1 = "test text 3", text2 = "test text 4" });
}
public ObservableCollection<MyDataClass> MyListBoxItems { get; set; }
}

public class MyDataClass
{
public string text1 { get; set; }
public string text2 { get; set; }
}

在您的 XAML 中

添加命名空间声明
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

将模拟数据上下文添加到窗口/控件资源
<UserControl.Resources> 
<local:MyMockClass x:Key="DesignViewModel"/>
</UserControl.Resources>

然后修改您的 ListBox 以引用设计时对象
<ListBox x:Name="standardLayoutListBox" 
d:DataContext="{Binding Source={StaticResource DesignViewModel}}"
ItemsSource="{Binding MyListBoxItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Column="0" Content="{Binding text1}" />
<Label Grid.Column="1" Content="{Binding text2}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

关于wpf - xaml 中数据模板的设计时数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com