如何在VM中动态创建列表

时间:2020-07-04 23:24:29

标签: c# wpf mvvm contextmenu multibinding

我的XAML中有一个图标(矩形),该图标绑定了上下文菜单。我想实现的是图标和contextmenu将一些值绑定到字符串中的gheter,稍后将在另一种方法中使用。

举一个更生动的例子,我有四个图标,代表四个物理对象。在contextmenu中,我有一个到所有四个对象的连接字符串。通过上下文菜单按图标和连接字符串所需要的信息,将构建最终的连接字符串,即。从一个对象到另一个对象。为了更加复杂一点,连接字符串和图标都通过API动态处理。

我遇到的问题是,当我使用contextmenu时,找不到一种将图标绑定到它代表的值的好方法,因为contextmenu的值绑定到一个列表,并且其他值绑定到字符串。我不希望使用ax:Name方法是静态的,因为稍后再动态创建图标也不会带来任何机会,正如您在代码中看到的那样,我确实尝试过这种方法,但是成功了,但是正如我所说,拥有更动态的方法是很不错的。

<Rectangle Tag="{Binding TrackID}" x:Name="Test" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="23" Margin="122,117,0,0" Stroke="Black" VerticalAlignment="Top" Width="28">
            <Rectangle.ContextMenu>
                <ContextMenu ItemsSource="{Binding tracksMenuList1}" ContextMenuClosing="ContextMenu_ContextMenuClosing" MenuItem.Click="ContextMenu_Click">
                <ContextMenu.ItemContainerStyle>
                    <Style TargetType="MenuItem">
                        <Setter Property="Header" Value="{Binding Tracks}"/>
                        <Setter Property="Uid" Value="{Binding id}"/>
                    </Style>
                </ContextMenu.ItemContainerStyle>
                </ContextMenu>
            </Rectangle.ContextMenu>
        </Rectangle>

0 个答案:

没有答案