相关疑难解决方法(0)

在WPF DataGrid中绑定ComboBoxColumn的ItemsSource

我有两个简单的Model类和一个ViewModel ...

public class GridItem
{
    public string Name { get; set; }
    public int CompanyID { get; set; }
}

public class CompanyItem
{
    public int ID { get; set; }
    public string Name { get; set; }
}

public class ViewModel
{
    public ViewModel()
    {
        GridItems = new ObservableCollection<GridItem>() {
            new GridItem() { Name = "Jim", CompanyID = 1 } };

        CompanyItems = new ObservableCollection<CompanyItem>() {
            new CompanyItem() { ID = 1, Name = "Company 1" },
            new …
Run Code Online (Sandbox Code Playgroud)

.net wpf binding wpfdatagrid datagridcomboboxcolumn

73
推荐指数
5
解决办法
10万
查看次数

在ItemsControl.DataTemplate中为ContextMenu设置DataContext

我有一个用于ItemsControl的数据模板的自定义控件.我想在每个项目上放置一个ContextMenu,让它调用UserControl的View Model来处理命令.使用下面的XAML,我可以在自定义控件上获取单击事件,以在用户控件视图模型中调用SelectedItemCommand.但是,使用上下文菜单的类似语法失败.默认情况下,我会为每个自定义控件获取视图模式.我使用的任何RelativeSource语法值都没有解析为用户控件的视图模型(RelativeSource Self).

什么是神奇的代码?

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <controls:MyCustomItem Width="Auto"
                                                 Command="{Binding DataContext.SelectedItemCommand,
                                                                   RelativeSource={RelativeSource FindAncestor,
                                                                                                  AncestorType={x:Type ItemsControl}}}"
                                                 CommandParameter="{Binding}">
                    <controls:MyCustomItem.ContextMenu>
                        <ContextMenu>
                            <MenuItem Command="{Binding DataContext.ClearAlarmsCommand,
                                                        RelativeSource={RelativeSource FindAncestor,
                                                                                       AncestorType={x:Type ItemsControl}}}"
                                      Header="Clear All" />
                        </ContextMenu>
                    </controls:MyCustomItem.ContextMenu>
                </controls:MyCustomItem>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

wpf

5
推荐指数
1
解决办法
1756
查看次数

标签 统计

wpf ×2

.net ×1

binding ×1

datagridcomboboxcolumn ×1

wpfdatagrid ×1