0

我正在 WPF 中做一个应用程序,并且我正在使用 DesignData 来加快 UI 创建过程,因为启动应用程序是一个缓慢的过程。

我找不到用设计数据设置组合框的 SelectedItem 的方法。检查以下示例:

XAML:

<Window x:Class="DesignDataTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    mc:Ignorable="d"

    d:DataContext="{d:DesignData Source=SampleData.xaml}" >

    <ComboBox ItemsSource="{Binding GroupingViewModel.Items}" SelectedItem="{Binding GroupingViewModel.SelectedItem}" DisplayMemberPath="Description" Width="100" Height="30" />
</Window>

视图模型:

public class MainViewModel
{
    public GroupingViewModel GroupingViewModel { get; private set; }

    public MainViewModel()
    {
        this.GroupingViewModel = new GroupingViewModel();
    }
}

public class GroupingViewModel
{
    public List<GroupingViewModel> Items { get; private set; }
    public GroupingViewModel SelectedItem { get; set; }

    public string Description { get; set; }

    public GroupingViewModel()
    {
        this.Items = new List<GroupingViewModel>();
    }
}

和设计数据:

<designDataTest:MainViewModel.GroupingViewModel>
    <designDataTest:GroupingViewModel Description="1">
        <designDataTest:GroupingViewModel.Items>
            <designDataTest:GroupingViewModel Description="1" />
            <designDataTest:GroupingViewModel Description="2" />
            <designDataTest:GroupingViewModel Description="3" />
        </designDataTest:GroupingViewModel.Items>
        <designDataTest:GroupingViewModel.SelectedItem>
            <designDataTest:GroupingViewModel Description="1" />                
        </designDataTest:GroupingViewModel.SelectedItem>
    </designDataTest:GroupingViewModel>
</designDataTest:MainViewModel.GroupingViewModel>

</designDataTest:MainViewModel>

似乎组合框期望从可用项目集合中接收一个元素,但我不知道如何从设计数据文件中引用这些元素之一。

有什么提示吗?

4

1 回答 1

1

你真的想使用 DesignData 吗?老实说,我从来没有这样用过。从我的脑海中,我将这样做的方式更多是创建一个“MockMainViewModel”类,该类将是一个派生自“MainViewModel”的类,并且在这个 MockMainViewModel 的构造函数中,您将能够添加任何您想要的项目想要您的收藏,因此要设置您的 GroupingViewModel.SelectedItem 属性。然后只需将 d:DataContext 属性设置为新创建的 MockMainViewModel 的新实例

于 2014-05-14T07:40:48.280 回答