小编Ejr*_*085的帖子

WPF中的动态菜单

如何从具有Bindings和Observable集合的数据库表中将菜单项添加到WPF中的菜单控件(而不是上下文菜单)?我有这个菜单:

<Menu HorizontalAlignment="Left" Height="27" VerticalAlignment="Top" Width="649">
    <MenuItem Header="_File">
       <MenuItem Header="_Exit" Command="{Binding ExitCommand}"/>
       </MenuItem>
    <MenuItem Header="_MyMenu">
       <MenuItem Header="_SubMenu1" Command="{Binding  SubMenu1Command}" />
       <MenuItem Header="_SubMenu2" Command="{Binding  SubMenu2Command}" />
    </MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)

"SubMenu1"和"_SuMenu2"是数据库表中的值:

codSubMenu | SubMenuColum | CommandColumn

1_ _ __ _ __ _ __ | SubMenu1 _ __ _ _ | SubMenu1Command 2 _ __ _ __ _ ___ | SubMenu2 _ ____ | _SubMenu2Command

我需要这样的东西:

<Menu HorizontalAlignment="Left" Height="27" VerticalAlignment="Top" Width="649"
    ItemsSource="{Binding ObservableCollectionMenu}">
    <MenuItem Header="_File">
       <MenuItem Header="_Exit" Command="{Binding ExitCommand}"/>
    </MenuItem>
    <MenuItem Header="_MyMenu">
        <MenuItem Header="{Binding …
Run Code Online (Sandbox Code Playgroud)

c# wpf

7
推荐指数
1
解决办法
1万
查看次数

如何在 PostgreSQL 13 中使用 INOUT 参数调用存储过程(不是函数)

我有这个存储过程:

CREATE OR REPLACE PROCEDURE SP_ObtenerSecuencialFactura(INOUT p_secuencial INT)
LANGUAGE PLPGSQL 
AS 
$$
BEGIN
    SELECT MAX("CODIGOFACTURA") + 1 INTO p_secuencial FROM "FACTURA";
    IF p_secuencial IS NULL THEN
        p_secuencial := 1;
    END IF;
END
$$
Run Code Online (Sandbox Code Playgroud)

和电话:

DECLARE secuencial INT;
CALL SP_ObtenerSecuencialFactura(secuencial);
RAISE NOTICE '%', secuencial;
Run Code Online (Sandbox Code Playgroud)

但是当我调用该存储过程时出现此错误:

错误:“INT”处或附近的语法错误

第 1 行:DECLARE secuencial INT;

怎么了?我正在寻找示例,但仅存在于函数中。

stored-procedures postgresql-13

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

如何在WPF中从C#获取HyperLink文本?

我有一个WPF Hyperlink,我正试图从中获取文本内容.

例如:

<Hyperlink Command="{Binding CustomersCommand}" Name="HLCustomers">
    Customers
</Hyperlink>
Run Code Online (Sandbox Code Playgroud)

使用通常的方式访问Text属性或使用VisualTreeHelper获取某些子文本元素Hyperlink是不可能的,因为它不是可视元素.我试图从中获取文本,FirstInline但这也没有给我文本.

如何Hyperlink在运行时从上面示例中的元素获取值"Customers" ?

c# wpf

4
推荐指数
1
解决办法
4818
查看次数

WPF/C# 中的异步任务和 RoutedEventHandler 出现问题

我有一个带有按钮的用户控件,可以从带有以下内容的窗口中使用RoutedEventHandler

用户控制:

public event RoutedEventHandler IniciarPLC_Click;
private void BtnIniciarPLC_Click(object sender, RoutedEventArgs e)
{
   .....
   if (IniciarPLC_Click != null)
   {
        IniciarPLC_Click(this, new RoutedEventArgs());
   }
   ......
}
Run Code Online (Sandbox Code Playgroud)

窗户:

XAML:

<ucUserControl x:Name="cntBarraHerramientas"  IniciarPLC_Click="CntBarraHerramientas_IniciarPLC_Click"/>
Run Code Online (Sandbox Code Playgroud)

C#:

private void CntBarraHerramientas_IniciarPLC_Click(object sender, RoutedEventArgs e)
{
    ....       
}
Run Code Online (Sandbox Code Playgroud)

但我需要调用async中的方法CntBarraHerramientas_IniciarPLC_Click,因此我更改了void返回类型并async Task使用以下方法调用该方法await

private async Task CntBarraHerramientas_IniciarPLC_Click(object sender, RoutedEventArgs e)
{
    await AsyncMethod(...);
}
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

无法从文本“CntBarraHerramientas_IniciarPLC_Click”创建“IniciarPLC_Click”。' ArgumentException:您无法链接到目标方法,因为其安全透明度或签名与委托类型的安全透明度或签名不兼容。

问题是我如何调用async方法RoutedEventHandler?因为async从按钮单击事件调用的方法有效。

c# wpf routed-events async-await

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