将视图模型绑定到内容控件/演示者

时间:2017-02-07 15:22:46

标签: c# xaml uwp

在uwp上,我想在xaml中制作一个带有自定义图标的汉堡包菜单。从MS的午餐调度程序示例中,我尝试将viewmodel属性绑定到视图中的内容元素:

<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
                    <ListBox.ItemTemplate>
                        <DataTemplate x:DataType="viewmodels:MenuItem">
                            <StackPanel Orientation="Horizontal">
                                <ContentControl Content="{x:Bind Icon2}" />

其中Icon是

之类的属性
Icon2 = Application.Current.Resources["BookIcon"],

可以工作并检索包含画布的视图

但我得到一个例外“价值不在预期范围内。”

有人知道它是否可能像WPF一样?

nb:如果我将画布直接放在contentcontrol中,它就可以了。也许绑定不接受除字符串

之外的任何其他内容

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,将视图框转换为DataTemplate并绑定到ContentTemplate

<DataTemplate x:Key="BookIcon">
            <Viewbox Width="48" Height="48">
                <Canvas Width="24" Height="24">
                    <Path Data/>
                </Canvas>
            </Viewbox>
        </DataTemplate>

<ContentControl ContentTemplate="{x:Bind Icon2}"/>

欢迎任何其他解决方案