小编apc*_*apc的帖子

WPF XAML - 带有 ItemSource 和子菜单项的 MenuItem

我在上下文菜单中有一个 MenuItem,我想使用 ItemSource 为列表中的每个项目生成子 MenuItem。这些生成的项目中的每一个还应该有子菜单项活动(可检查)、编辑和删除。

Custom Messages
    -Custom Message 1
           -Active 
           -Edit
           -Delete
    -Custom Message 2
           -Active 
           -Edit
           -Delete
    -Custom Message 3
           -Active 
           -Edit
           -Delete
Run Code Online (Sandbox Code Playgroud)

以下 XAML 部分有效:

<MenuItem Header="Custom Messages" Visibility="{Binding Path=HasCustomMessages, Converter={StaticResource BVC}}" ItemsSource="{Binding Path=CustomMessages}" DisplayMemberPath="Description">
    <MenuItem.ItemContainerStyle>
        <Style TargetType="MenuItem">
            <Setter Property="ItemsSource">
                <Setter.Value>
                    <x:Array Type="FrameworkElement">
                        <MenuItem Header="Active" IsCheckable="True" IsChecked="{Binding Path=Active}"></MenuItem>
                        <Separator></Separator>
                        <MenuItem Header="Edit" Name="EditCustomMessageButton" Click="EditCustomMessageButton_Click" Style="{x:Null}"></MenuItem>
                        <MenuItem Header="Delete" Name="DeleteCustomMessageButton" Click="DeleteCustomMessageButton_Click" Style="{x:Null}"></MenuItem>
                    </x:Array>
                </Setter.Value>
            </Setter>
        </Style>
    </MenuItem.ItemContainerStyle>                       
</MenuItem>
<MenuItem Header="Add Custom Message" Name="AddCustomMessageButtton" Click="AddCustomMessageButtton_Click"></MenuItem>
<Separator></Separator>
<MenuItem Header="Delete" Name="DeleteButton" Click="DeleteButton_Click"></MenuItem>
Run Code Online (Sandbox Code Playgroud)

但是有两个问题: …

.net wpf xaml

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

在VS2017中隐藏了IntelliSense的调度程序

我刚刚开始使用VS2017,并注意到在WPF Dispatcher中,当在窗口内编辑时,对象不再显示在IntelliSense中.

看看我能看到的定义:

<EditorBrowsable(EditorBrowsableState.Advanced)>
Public ReadOnly Property Dispatcher As Dispatcher
Run Code Online (Sandbox Code Playgroud)

但是,隐藏此选项的选项不适用于Visual Basic:

在此输入图像描述

现在很可能这是VS2017中的一个错误,但万一这不是什么想法?

vb.net wpf visual-studio-2017

5
推荐指数
0
解决办法
222
查看次数

VB6 .Net Interop.将.Net Date属性传递给VB6函数ByRef未更新

我有一个混合的VB6(入口点)到.Net应用程序.

在.Net中,我有一个类,它具有Date属性(Date1-Date4),并且公开了,并且COM Visible等等于VB6代码.

在VB6代码中有一个方法,它采用Date ByRef并修改它.

使用在VB6(dt1-dt4)中声明的日期,这可以正常工作,我传递ByRef的日期变量得到更新,但是如果我在我的类(Date1-Date4)上传递.Net日期,它会更新.

work arround是将TmpDate传递给方法,然后将值分配给.Net属性.

然而,我想找到一个合适的解决方案,因为我正在替换VB6代码,这很容易被遗漏.

VB.Net宣言

<ComVisible(True)>
Public Class DotNetDatesClass
    Implements INotifyPropertyChanged, IDotNetDatesClass

     Private _Date1 As DateTime

     <ComVisible(True)> 
      Public Property Date1 As DateTime Implements IDotNetDatesClass.Date1   
            Get
                Return _Date1
            End Get
            Set(value As DateTime)
                _Date1 = value                   
            End Set
        End Property
Run Code Online (Sandbox Code Playgroud)

VB6示例:

    dotNetDates.Date1 = DEFAULT_DATE
    dotNetDates.Date2 = DEFAULT_DATE
    dotNetDates.Date3 = DEFAULT_DATE
    dotNetDates.Date4 = DEFAULT_DATE

    getDates connectionString, dotNetDates.Date1, dotNetDates.Date2, dotNetDates.Date3, dotNetDates.Date4
Run Code Online (Sandbox Code Playgroud)

解决方法:

    Dim dt1 As Date
    Dim dt2 As Date
    Dim dt3 As Date
    Dim dt4 As Date …
Run Code Online (Sandbox Code Playgroud)

.net vb.net vb6 com-interop vb6-migration

2
推荐指数
1
解决办法
275
查看次数

标签 统计

.net ×2

vb.net ×2

wpf ×2

com-interop ×1

vb6 ×1

vb6-migration ×1

visual-studio-2017 ×1

xaml ×1