私はWPFアプリケーションに取り組んでいます。
この画像を確認してください:
+記号ボタンをクリックすると、添付ファイルのパスを下のグリッドに表示したいと思います。このために、以下に示すいくつかの作業を行いました。
XAML ファイル
<StackPanel>
<StackPanel Orientation="Horizontal">
<Appctr:GridToolBar x:Name="attachmentTool" Grid.Row="0" RemoveRowClick="attachmentTool_RemoveRowClick" AddRowClick="attachmentTool_AddRowClick" MoveUpClick="attachmentTool_MoveUpClick" MoveDownClick="attachmentTool_MoveDownClick" ToolBtn_Search="ButtonEditSettings_attachmentUsedClick" Height="25" />
</StackPanel>
<dxg:GridControl x:Name="dxgAttachment" Height="200" AutoPopulateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<dxg:GridControl.View>
<dxg:TableView x:Name="vwAttachment" ShowGroupPanel="False" AllowBestFit="True" AutoWidth="True">
</dxg:TableView>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<!--<dxg:GridColumn FieldName="SlNo" Header="Sl #"></dxg:GridColumn>-->
<dxg:GridColumn FieldName="LocalPath" Header="Attachment Path" Width="Auto" ReadOnly="True" EditSettings="{dxe:TextSettings TextWrapping=Wrap}"></dxg:GridColumn>
<!--<dxg:GridColumn FieldName="LocalPath" Header="Attachment Path" Width="1130" ReadOnly="True" EditSettings="{dxe:TextSettings TextWrapping=Wrap}"></dxg:GridColumn>-->
</dxg:GridControl.Columns>
</dxg:GridControl>
</StackPanel>
.CS ファイル
private void attachmentTool_AddRowClick(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
// Set filter for file extension and default file extension
//dlg.DefaultExt = ".txt";
//dlg.Filter = "Text documents (.txt)|*.txt";
// Display OpenFileDialog by calling ShowDialog method
Nullable<bool> result = dlg.ShowDialog();
// Get the selected file name and display in a TextBox
if (result == true)
{
try
{
// Open document
string filePath = dlg.FileName;
AttachmentInfo info = new AttachmentInfo();
info.LocalPath = filePath;
info.FileName = System.IO.Path.GetFileNameWithoutExtension(filePath);
info.FileExtension = System.IO.Path.GetExtension(filePath).Replace(".", "");
Stream strm = dlg.OpenFile();
byte[] data = new byte[strm.Length];
strm.Read(data, 0, data.Length);
info.AttachmentContent = data;
strm.Close();
strm.Dispose();
this.dxgAttachment.ItemsSource = info;
}
catch (Exception ex)
{
DXMessageBox.Show("Unable to attach file. " + ex.Message);
}
}
}
問題
添付ファイルのパスをグリッドに表示するにはどうすればよいですか?
単一または複数のファイルを添付した後、すべてのファイルもデータベースに保存したいと考えています。これを行う方法?
上記のコードを使用すると、添付ファイルのリストをグリッドに表示できません。