我目前正在自定义一个 ListBox。我的意思是向一个 listItem 添加一个图像元素、第二个行元素等。
itemSource 是 C# 中的列表,因此我没有 Expression Blend/VS 中的项目的预览。这就是痛苦。
因为我总是要编辑 XAML 然后部署来检查。这种情况一直持续到最后一个像素正确为止。
没有办法在 Blend/VS 中编辑带有自定义项(带有动态 itemSource)的 ListBox 吗?
那真的会加快我的发展速度。
我目前正在自定义一个 ListBox。我的意思是向一个 listItem 添加一个图像元素、第二个行元素等。
itemSource 是 C# 中的列表,因此我没有 Expression Blend/VS 中的项目的预览。这就是痛苦。
因为我总是要编辑 XAML 然后部署来检查。这种情况一直持续到最后一个像素正确为止。
没有办法在 Blend/VS 中编辑带有自定义项(带有动态 itemSource)的 ListBox 吗?
那真的会加快我的发展速度。
如果您想查看您的控件在设计时的样子,您必须使用 SampleData。有几种方法可以做到这一点,这取决于您的框架。
假设您有一个名为 MainPage.xaml 的页面。如果您还没有视图模型,请创建一个新模型并将其命名为 MainViewModel.cs。定义将用于绑定的所有公共属性。获得视图模型后,在名为 SampleData 的文件夹中创建新文件并将其命名为 MainViewModelSampleData.xaml。
现在,在 MainPage.xaml 中将以下属性添加到页面元素:
d:DataContext={d:DesignData Source=SampleData/MainViewModelSampleData.xaml}
还将 MainViewModelSampleData.xaml 的构建操作设置为 DesignData。
现在,如果要在 MainPage 中显示数据,则需要在示例数据文件中定义所有属性。例如:
// view model contains public properties Title of type string and Children of type
// PersonViewModel which contains properties Name and Age (string and int respectively)
<local:MainViewModel xmlns:local="clr-namespace:myapp"
Title="Title">
<local:MainViewModel.Children>
<local:ChildViewModel Name="John" Age="31" />
</local:MainViewModel.Children>
</local:MainViewModel>
您现在应该在设计视图中看到您的页面充满了数据。这样,通过使用 MVVM,您可以快速创建模拟数据。这将确保您可以围绕现有数据设计视图,而无需运行应用程序。
阅读以下链接的更多信息:
我现在知道该怎么做。如果有人偶然发现这个问题,请执行以下操作:
复制您在 itemtemplate 的堆栈面板中编写的所有 XAML
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
//...
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
并将其复制到<ListBox> //Here </ListBox>
那里,您可以在设计器中对其进行编辑。
完成后,只需将代码复制回 StackPanel。