问题描述
我正在研究wpf syncfusion:sfDataGrid。
在网格中,我有按钮,在按钮上单击“我正在打开一个弹出窗口”。 在弹出窗口中,有两个绑定到viewmodel的按钮。
我想将sfDataGrid的同一对象绑定到“弹出窗口”中的按钮上,以将viewmodel变为null。
我使用了CommandParameter,但是它不起作用。
#SfDataGrid代码#:
<syncfusion:SfDataGrid x:Name="dgKYCUser"
ItemsSource="{Binding Path = lstTempKYCUserDetails,Mode=TwoWay}"
SelectedItem="{Binding SelectedItem,Mode=TwoWay}"
NavigationMode="Row"
SelectionMode="Multiple"
ColumnSizer="Auto"
HeaderRowHeight="30"
AllowFiltering="True"
HeaderStyle="{StaticResource headerStyle}"
AllowResizingColumns="True"
AllowDraggingColumns="True"
AllowDrop="True"
AutoGenerateColumns="False"
Foreground="#3e4345"
AllowEditing="True"
FrozenColumnCount="2"
BorderBrush="Red"
Background="White"
>
通过sfDataGrid中的按钮打开弹出窗口
<syncfusion:GridTemplateColumn MappingName="sPenny" HeaderText="Penny" Width="65" ShowHeaderToolTip="True" syncfusion:FocusManagerHelper.WantsKeyInput="True">
<syncfusion:GridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Button Content="Penny" ToolTip="Penny" Visibility="{Binding BtnPennyAmountVisbility,Mode=TwoWay}" syncfusion:FocusManagerHelper.FocusedElement="True" Command="{Binding DataContext.OnPennyAmtDrop,ElementName=dgKYCUser}" CommandParameter="{Binding}" IsEnabled="{Binding IsPennyBtnEnabled}" />
<Button x:Name="ViewBtn" Content="View Details" ToolTip="View Details" Visibility="{Binding ViewDetailsbtnVisibility,Mode=TwoWay}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding DataContext.OnViewDetailsClick,ElementName=dgKYCUser}" CommandParameter="{Binding}" />
<myaction:PopupAction PropertyName="IsOpen" Targetobject="{Binding ElementName=PennyPopup}" Value="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Label Content ="Pending" Background="Gray" Foreground="Black" Visibility="{Binding PendingVisibility}"/>
<Label Content ="{Binding sPenny}" Foreground="Black" Visibility="{Binding lblPennyAmountVisbility,Mode=TwoWay}"/>
</StackPanel>
</DataTemplate>
</syncfusion:GridTemplateColumn.CellTemplate>
</syncfusion:GridTemplateColumn>
弹出窗口
<Popup x:Name="PennyPopup" Width="700" Height="250" HorizontalAlignment="Center" VerticalAlignment="Center" IsOpen="{Binding isPennyPopupOpen}" PlacementTarget="{Binding ElementName=ViewBtn}" Placement="MousePoint" StaysOpen="False">
<Border BorderBrush="DarkGray" BorderThickness="2">
<Grid Background="White" Width="700">
<Grid.RowDeFinitions>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
<RowDeFinition Height="auto"/>
</Grid.RowDeFinitions>
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="110"/>
<ColumnDeFinition Width="150"/>
<ColumnDeFinition Width="90"/>
<ColumnDeFinition Width="150"/>
<ColumnDeFinition Width="10"/>
<ColumnDeFinition Width="150"/>
</Grid.ColumnDeFinitions>
<Label Content="Bank Details" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Label Content="Bank Details from Penny" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="3" HorizontalAlignment="Right" VerticalAlignment="Center" />
<Label Content="Client Name :" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" Width="150" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding sClientName}" />
<TextBox Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="3" Width="150" VerticalAlignment="Center" HorizontalAlignment="Right" Text="{Binding sClientName}" />
<Image Grid.Row="1" Grid.Column="5" Height="20" Width="30" Source="{Binding bClientVerify,Converter={StaticResource ImageConverter}}"/>
<Label Content="Bank Name : " Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBox Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Width="150" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding sBankName}"/>
<TextBox Grid.Column="2" Grid.Row="3" Grid.ColumnSpan="3" Width="150" VerticalAlignment="Center" HorizontalAlignment="Right" Text="{Binding sBankName}"/>
<Image Grid.Row="3" Grid.Column="5" Height="20" Width="30" Source="{Binding bBankVerify,Converter={StaticResource ImageConverter}}"/>
<Label Content="Branch Address : " Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBox Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Width="150" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding sBranchAddr}"/>
<TextBox Grid.Column="2" Grid.Row="4" Grid.ColumnSpan="3" Width="150" VerticalAlignment="Center" HorizontalAlignment="Right" Text="{Binding sBranchAddr}"/>
<Image Grid.Row="4" Grid.Column="5" Height="20" Width="30" Source="{Binding bBranchAddressverify,Converter={StaticResource ImageConverter}}"/>
<Label Content="Account No : " Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left"/>
<TextBox Grid.Column="1" Grid.Row="5" Width="150" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding sAccountNo}" />
<TextBox Grid.Column="2" Grid.Row="5" Width="150" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Right" Text="{Binding sAccountNo}" />
<Image Grid.Row="5" Grid.Column="5" Height="20" Width="30" Source="{Binding bAccountNoVerify,Converter={StaticResource ImageConverter}}"/>
<Label Content="IFSC : " Grid.Row="6" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left"/>
<TextBox Grid.Column="1" Grid.Row="6" Width="150" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding sIFSCCode}"/>
<TextBox Grid.Column="2" Grid.Row="6" Width="150" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Right" Text="{Binding sIFSCCode}"/>
<Image Grid.Row="6" Grid.Column="5" Height="20" Width="30" Source="{Binding bIFSCVerify,Converter={StaticResource ImageConverter}}"/>
<Label Content="MICR : " Grid.Row="7" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left"/>
<TextBox Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="2" Width="150" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding sMICRNo}"/>
<TextBox Grid.Column="2" Grid.Row="7" Grid.ColumnSpan="3" Width="150" VerticalAlignment="Center" HorizontalAlignment="Right" Text="{Binding sMICRNo}"/>
<Image Grid.Row="7" Grid.Column="5" Height="20" Width="30" Source="{Binding bMICRVerify,Converter={StaticResource ImageConverter}}"/>
<Button Grid.Row="8" Grid.Column="1" Margin="0,10,0" Grid.ColumnSpan="2" Width="100" Content="Accept" HorizontalAlignment="Center" VerticalAlignment="Bottom" Command="{Binding OnAcceptClick}" CommandParameter="{Binding Path=SelectedItem,ElementName=dgKYCUser}"/>
<Button Grid.Row="8" Grid.Column="2" Margin="0,0" Grid.ColumnSpan="3" Width="100" Content="Reject" HorizontalAlignment="Center" VerticalAlignment="Bottom" Command="{Binding OnRejectClick}" CommandParameter="{Binding Path=SelectedItem,ElementName=dgKYCUser}"/>
</Grid>
</Border>
</Popup>
OnAcceptClick = new DelegateCommand<vwKYCUserDetails>(async (m) =>
{
try
{
string sResult = await InsertKYCBtnDetails(PennyId,(short)enumBtnTypes.PENNY);
vwKYCUserDetails objvwKYCUserDetails = lstKYCUserDetails.Where(x => x.id == PennyId).FirstOrDefault();
if (sResult == Constant.Successful)
{
objvwKYCUserDetails.ViewDetailsbtnVisibility = Visibility.Collapsed;
objvwKYCUserDetails.lblPennyAmountVisbility = Visibility.Visible;
objvwKYCUserDetails.IsUCCUploadBtnEnabled = true;
}
}
catch (Exception ex)
{
Logger.WriteException(ex,objLog);
}
});
OnRejectClick = new DelegateCommand<vwKYCUserDetails>(async (m) =>
{
vwKYCUserDetails objvwKYCUserDetails = lstKYCUserDetails.Where(x => x.id == PennyId).FirstOrDefault();
try
{
objvwKYCUserDetails.BtnPennyAmountVisbility = Visibility.Visible;
objvwKYCUserDetails.ViewDetailsbtnVisibility = Visibility.Collapsed;
}
catch (Exception ex)
{
Logger.WriteException(ex,objLog);
}
});
在异步(m)中,我总是得到null,我希望在viewmodel命令OnAcceptClick和OnRejectClick上使用sfDataGrid的selectedItem。 在Popupwindow中单击按钮时如何获取该信息。
请帮助我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)