feat:检测画面改修

master
sunhonglei 7 months ago
parent 4c984f2a55
commit bf3c38820e
  1. 3
      App.xaml
  2. 2
      Language/en_US.xaml
  3. 26
      Language/zh_CN.xaml
  4. 14
      Model/Entity/CutterConfigEntity.cs
  5. 23
      Model/Helper/DataBaseHelper.cs
  6. 5
      SparkClient.csproj
  7. BIN
      SparkDB.db
  8. 10
      ViewModel/BaseWindow/HomeWindowVM.cs
  9. 28
      ViewModel/Configuration/AlgorithmConfigVM.cs
  10. 8
      ViewModel/Configuration/ConfigMenuPageVM.cs
  11. 45
      ViewModel/Configuration/CutConfigVM.cs
  12. 8
      ViewModel/Grading/DiamondSelectVM.cs
  13. 56
      ViewModel/Grading/GradingResultVM.cs
  14. 18
      Views/Configuration/ConfigMenuPage.xaml
  15. 14
      Views/Configuration/ConfigMenuPage.xaml.cs
  16. 2
      Views/Dialog/StartDialog.xaml
  17. 1
      Views/Grading/DiamondSelect.xaml
  18. 91
      Views/Grading/GradingResult.xaml
  19. 10
      Views/Grading/GradingResult.xaml.cs

@ -57,6 +57,9 @@
<DataTemplate DataType="{x:Type dialogVM:StartDialogVM}">
<dialogView:StartDialog/>
</DataTemplate>
<DataTemplate DataType="{x:Type configVM:SettingsVM}">
<configView:SettingsPage/>
</DataTemplate>
</ResourceDictionary>
</Application.Resources>
</Application>

@ -26,7 +26,7 @@
<sys:String x:Key="STANDARD_NAME">STANDARD_EN_NAME</sys:String>
<sys:String x:Key="SHAPE_NAME">SHAPE_EN_NAME</sys:String>
<sys:String x:Key="INSTITUTE_NAME">INSTITUTE_EN_NAME</sys:String>
<sys:String x:Key="RULE_NAME">RULE_EN_NAME</sys:String>
<!--检测结果 报表-->
<sys:String x:Key="Avg">Average</sys:String>

@ -27,12 +27,20 @@
<sys:String x:Key="UglifyJson">压缩Json</sys:String>
<!-- 检测结果 -->
<sys:String x:Key="Standard">标准</sys:String>
<sys:String x:Key="Shape">形状</sys:String>
<sys:String x:Key="Crown">冠部</sys:String>
<sys:String x:Key="Pav">亭部</sys:String>
<sys:String x:Key="Wight">重量(ct)</sys:String>
<sys:String x:Key="CutLevel">切工等级</sys:String>
<sys:String x:Key="SymLevel">对称等级</sys:String>
<sys:String x:Key="resAvg">平均</sys:String>
<sys:String x:Key="resYuan">圆度</sys:String>
<sys:String x:Key="resShen">深度</sys:String>
<sys:String x:Key="resMin">最小值</sys:String>
<sys:String x:Key="resMax">最大值</sys:String>
<sys:String x:Key="resLevel">SYM等级</sys:String>
<sys:String x:Key="Export">导出</sys:String>
<sys:String x:Key="ExitAsk">是否退出程序?</sys:String>
<sys:String x:Key="ExitAskTitle">是否退出</sys:String>
@ -54,6 +62,9 @@
<sys:String x:Key="ok">确定</sys:String>
<sys:String x:Key="Skip">跳过</sys:String>
<sys:String x:Key="NoDiamondCode">没有输入钻石编码</sys:String>
<!-- 算法配置画面 -->
<sys:String x:Key="SaveSuccess">保存成功</sys:String>
<sys:String x:Key="SaveFail">保存失败</sys:String>
<!-- 钻石选择画面 -->
<sys:String x:Key="圆形">圆形</sys:String>
<sys:String x:Key="心形">心形</sys:String>
@ -73,4 +84,19 @@
<!--算法配置 报表-->
<sys:String x:Key="Demo1">按钮</sys:String>
<!-- 系统配置 -->
<sys:String x:Key="SaveAs">保存</sys:String>
<sys:String x:Key="System Settings">系统配置</sys:String>
<sys:String x:Key="Language settings">语言设置</sys:String>
<sys:String x:Key="UpdateFile">上传文件</sys:String>
<sys:String x:Key="TxtFile">TXT文件</sys:String>
<sys:String x:Key="StlFile">STL文件</sys:String>
<sys:String x:Key="ExcelFile">Excel文件</sys:String>
<sys:String x:Key="DatFile">Dat文件</sys:String>
<sys:String x:Key="SavePath">保存路径</sys:String>
<sys:String x:Key="Please enter">请输入</sys:String>
<sys:String x:Key="Select">选择</sys:String>
<sys:String x:Key="GradeStandard">定级标准</sys:String>
<sys:String x:Key="SavePathIsnotExists">保存路径不存在</sys:String>
<sys:String x:Key="RULE_NAME">RULE_NAME</sys:String>
</ResourceDictionary>

@ -8,26 +8,26 @@ namespace SparkClient.Model.Entity;
/// 系统设置实体
/// </summary>
public class CutterConfigEntity : BaseEntity
public class CutterConfigEntity
{
public static readonly new string TableName = "CUTTER_CONFIG";
public static readonly string TableName = "CUTTER_CONFIG";
[DbField("GUID")]
public Guid GUID { get; set; }
/// <summary>
/// 项目名称
/// </summary>
[DbField("ITEM_NAME")]
public string ItemName { get; set; }
public required string ItemName { get; set; }
/// <summary>
/// key
/// </summary>
[DbField("KEY")]
public string Key { get; set; }
public required string Key { get; set; }
/// <summary>
/// value
/// </summary>
[DbField("VALUE")]
public string Value { get; set; }
public required string Value { get; set; }
private static Dictionary<string, string> GetFieldMappings()
{
var properties = typeof(CutterConfigEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance);
@ -49,7 +49,7 @@ public class CutterConfigEntity : BaseEntity
}
// 生成 Update 语句
public string GenerateUpdateSQL(Dictionary<string, object> fieldsToUpdate = null)
public string GenerateUpdateSQL(Dictionary<string, object>? fieldsToUpdate = null)
{
if (fieldsToUpdate == null || fieldsToUpdate.Count == 0)
{
@ -67,7 +67,7 @@ public class CutterConfigEntity : BaseEntity
}
// 生成 Delete 语句
public string GenerateDeleteSQL(Dictionary<string, object> conditions = null)
public string GenerateDeleteSQL(Dictionary<string, object>? conditions = null)
{
if (conditions == null || conditions.Count == 0)
{

@ -1,5 +1,7 @@
using System.Data;
using System.IO;
using log4net;
using log4net.Repository.Hierarchy;
using Microsoft.Data.Sqlite;
namespace SparkClient.Model.Helper;
@ -8,12 +10,13 @@ namespace SparkClient.Model.Helper;
/// </summary>
public class DataBaseHelper
{
private static readonly ILog Logger = LogManager.GetLogger(typeof(MainWindow));
//连接、查询、查询、关闭
public static void InitDataBase()
{
string databasePath = Path.Combine(Common.BasePath, Common.DataBaseTempFileName);
Logger logger;
if (File.Exists(databasePath))
return;
else
@ -36,8 +39,8 @@ public class DataBaseHelper
static readonly string password = Common.DatabasePwd;
static readonly string dbPath = Common.DataBaseFileName;
static SqliteConnection connection;
static SqliteTransaction sqliteTransaction;
static SqliteConnection? connection;
static SqliteTransaction? sqliteTransaction;
public static void CreateConnection()
{
@ -59,7 +62,10 @@ public class DataBaseHelper
public static void CloseConnection()
{
connection.Close();
if (connection != null)
{
connection.Close();
}
}
public static void BeginTransaction()
{
@ -95,7 +101,10 @@ public class DataBaseHelper
SqliteCommand cmd = new SqliteCommand();
cmd.Connection = connection;
cmd.CommandText = sql;
cmd.Transaction = sqliteTransaction;
if (sqliteTransaction != null)
{
cmd.Transaction = sqliteTransaction;
}
if (sqlParameters != null)
{
cmd.Parameters.AddRange(sqlParameters);
@ -135,8 +144,8 @@ public class DataBaseHelper
}
catch (Exception ex)
{
System.Windows.MessageBox.Show("检索失败");
Console.WriteLine(ex.ToString());
Logger.Error($"全局异常捕获:{ex.Message}", ex);
System.Windows.MessageBox.Show($"应用程序出现错误:{ex.Message}");
}
return null;
}

@ -33,6 +33,9 @@
<None Remove="Resource\Images\Princess-shaped.png" />
<None Remove="Resource\Images\round_3x.png" />
<None Remove="Resource\Images\round_P8-P8.png" />
<None Remove="Resource\Images\Setting%403x.png" />
<None Remove="Resource\Images\Setting_Def%403x.png" />
<None Remove="Resource\Images\Setting_Sel%403x.png" />
<None Remove="Resource\Images\ze-add-o 1%403x.png" />
<Resource Include="Resource\Images\Cushion-shaped.png" />
<Resource Include="Resource\Images\Emerald-shape.png" />
@ -46,6 +49,8 @@
<Resource Include="Resource\Images\Princess-shaped.png" />
<Resource Include="Resource\Images\round_3x.png" />
<Resource Include="Resource\Images\round_P8-P8.png" />
<Resource Include="Resource\Images\Setting_Def@3x.png" />
<Resource Include="Resource\Images\Setting_Sel@3x.png" />
<Resource Include="Resource\Images\ze-add-o 1@3x.png" />
<None Update="log4net.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>

Binary file not shown.

@ -62,9 +62,13 @@ public class HomeWindowVM : BaseViewModel
// WindowManager.mainViewModel.Content = vm;
// WindowManager.openContent.Add(vm);
// }
BaseControlVM vm = new BaseControlVM(new GradingResultVM(null), MultilingualHelper.getString("DetectionResult"));
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
//BaseControlVM vm = new BaseControlVM(new GradingResultVM(null), MultilingualHelper.getString("DetectionResult"));
//WindowManager.mainViewModel.Content = vm;
//WindowManager.openContent.Add(vm);
StartDialog startDialog = new StartDialog();
startDialog.ShowDialog();
}
catch (Exception e)
{

@ -34,7 +34,7 @@ public class AlgorithmConfigVM : BaseViewModel
public void InitAlgorithmData(object param)
{
AlgorithmConfigJson = "{}";
string sql = @"SELECT JSON as json FROM METHOD_CONFIG ORDER BY JSON_ORDER";
string sql = @"SELECT JSON as json FROM ALGORITHM_CONFIG ORDER BY JSON_ORDER";
DataTable dataTable = DataBaseHelper.ExecuteQuery(sql);
StringBuilder sb = new StringBuilder();
if (dataTable != null)
@ -59,16 +59,18 @@ public class AlgorithmConfigVM : BaseViewModel
{
DataBaseHelper.BeginTransaction();
string temp = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(AlgorithmConfigJson));
string deleteSql = @"DELETE FROM METHOD_CONFIG";
string deleteSql = @"DELETE FROM ALGORITHM_CONFIG";
DataBaseHelper.ExecuteNonQuery(deleteSql);
int order = 0;
int insertCount = 0;
while (temp.Length>2000)
{
MethodConfigEntity entity = new MethodConfigEntity();
entity.GUID = Guid.NewGuid();
entity.JsonOrder = order++;
entity.Json = temp.Substring(0,2000);
AlgorithmConfigEntity entity = new AlgorithmConfigEntity()
{
GUID = Guid.NewGuid(),
JsonOrder = order++,
Json = temp.Substring(0, 2000),
};
temp = temp.Substring(2000);
string sql = entity.GenerateInsertSQL();
SqliteParameter[] sqliteParameters = {
@ -80,10 +82,12 @@ public class AlgorithmConfigVM : BaseViewModel
}
if (temp.Length>0)
{
MethodConfigEntity entity = new MethodConfigEntity();
entity.GUID = Guid.NewGuid();
entity.JsonOrder = order++;
entity.Json = temp;
AlgorithmConfigEntity entity = new AlgorithmConfigEntity()
{
GUID = Guid.NewGuid(),
JsonOrder = order++,
Json = temp
};
string sql = entity.GenerateInsertSQL();
SqliteParameter[] sqliteParameters = {
new SqliteParameter("@Json", entity.Json),
@ -94,12 +98,12 @@ public class AlgorithmConfigVM : BaseViewModel
}
if (insertCount >= 0)
{
Growl.Info("保存成功");
Growl.Info(MultilingualHelper.getString("SaveSuccess"));
DataBaseHelper.commit();
}
else
{
Growl.Error("保存失败");
Growl.Error(MultilingualHelper.getString("SaveFail"));
DataBaseHelper.rollback();
}
}

@ -10,12 +10,14 @@ public class ConfigMenuPageVM : BaseViewModel
public ICommand LevelConfigCommand { get; }
public ICommand AlgorithmConfigCommand { get; }
public ICommand CutConfigCommand { get; }
public ICommand SettingConfigCommand { get; }
public ConfigMenuPageVM()
{
CloseCommand = new RelayCommand(CloseVM);
LevelConfigCommand = new RelayCommand(LevelConfig);
AlgorithmConfigCommand = new RelayCommand(AlgorithmConfig);
CutConfigCommand = new RelayCommand(CutConfig);
SettingConfigCommand = new RelayCommand(SettingConfig);
}
/// <summary>
@ -60,4 +62,10 @@ public class ConfigMenuPageVM : BaseViewModel
WindowManager.openContent.Add(vm);
}
public void SettingConfig(object parameter)
{
BaseControlVM vm = new BaseControlVM(new SettingsVM(), MultilingualHelper.getString("System Settings"));
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
}

@ -80,18 +80,20 @@ public class CutConfigVM: BaseViewModel
int insertCount = 0;
foreach (DataRow row in CutterInfos.Rows)
{
if (row["Key"] == "")
if (row["Key"].ToString() == "")
{
continue;
}
DataRow removerow = dataTable.AsEnumerable().Where(r => r["GUID"].ToString() == row["GUID"].ToString()).FirstOrDefault();
DataRow? removerow = dataTable.AsEnumerable().Where(r => r["GUID"].ToString() == row["GUID"].ToString()).FirstOrDefault();
if (removerow != null)
{
CutterConfigEntity entity = new CutterConfigEntity();
entity.ItemName = row["ItemName"].ToString();
entity.Key = row["Key"].ToString();
entity.Value = row["Value"].ToString();
entity.GUID = Guid.Parse(row["GUID"].ToString());
CutterConfigEntity entity = new CutterConfigEntity()
{
ItemName = row["ItemName"].ToString() ?? "",
Key = row["Key"].ToString() ?? "",
Value = row["Value"].ToString() ?? "",
GUID = Guid.Parse(row["GUID"].ToString()??"")
};
sql = entity.GenerateUpdateSQL();
SqliteParameter[] sqliteParameters = {
new SqliteParameter("@ITEM_NAME", row["ItemName"].ToString()),
@ -104,10 +106,12 @@ public class CutConfigVM: BaseViewModel
}
else
{
CutterConfigEntity entity = new CutterConfigEntity();
entity.ItemName = row["ItemName"].ToString();
entity.Key = row["Key"].ToString();
entity.Value = row["Value"].ToString();
CutterConfigEntity entity = new CutterConfigEntity()
{
ItemName = row["ItemName"].ToString() ?? "",
Key = row["Key"].ToString() ?? "",
Value = row["Value"].ToString() ?? ""
};
sql = entity.GenerateInsertSQL();
SqliteParameter[] sqliteParameters = {
new SqliteParameter("@ItemName", row["ItemName"].ToString()),
@ -120,12 +124,14 @@ public class CutConfigVM: BaseViewModel
}
foreach (DataRow row in dataTable.Rows)
{
CutterConfigEntity entity = new CutterConfigEntity();
entity.ItemName = row["ItemName"].ToString();
entity.Key = row["Key"].ToString();
entity.Value = row["Value"].ToString();
Guid.TryParse(row["GUID"].ToString(), out Guid result);
entity.GUID = result;
CutterConfigEntity entity = new CutterConfigEntity()
{
ItemName = row["ItemName"].ToString() ?? "",
Key = row["Key"].ToString() ?? "",
Value = row["Value"].ToString() ?? "",
GUID = result
};
sql = entity.GenerateDeleteSQL();
insertCount += DataBaseHelper.ExecuteNonQuery(sql);
}
@ -145,7 +151,10 @@ public class CutConfigVM: BaseViewModel
/// <param name="row">行</param>
public void DelCutRow(object row)
{
DataRowView a = row as DataRowView;
CutterInfos.Rows.Remove(a.Row);
DataRowView? a = row as DataRowView;
if (a != null)
{
CutterInfos.Rows.Remove(a.Row);
}
}
}

@ -109,7 +109,7 @@ public class DiamondSelectVM : BaseViewModel
{
// 模拟耗时操作
//System.Threading.Thread.Sleep(50); // 休眠50毫秒
await Task.Delay(1000);
await Task.Delay(5);
// 更新进度条的值(需要在UI线程上执行)
loading.Dispatcher.Invoke(() =>
{
@ -117,8 +117,9 @@ public class DiamondSelectVM : BaseViewModel
});
}
GradingResult(null);
});
await Task.Delay(5);
loading.Close();
}
}
@ -129,7 +130,8 @@ public class DiamondSelectVM : BaseViewModel
/// <param name="param"></param>
public void GradingResult(object param)
{
BaseControlVM vm = new BaseControlVM(new GradingResultVM(null), MultilingualHelper.getString("GradingResult"));
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
BaseControlVM vm = new BaseControlVM(new GradingResultVM(null), MultilingualHelper.getString("DetectionResult"));
vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);

@ -1,6 +1,7 @@
using System.Data;
using System.Windows.Input;
using HandyControl.Controls;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip;
namespace SparkClient.ViewModel.Grading;
@ -9,9 +10,28 @@ public class GradingResultVM : BaseViewModel
private DataTable _dtResults;
private DataTable _info;
private DataTable _dsList;
private DataTable _gradeList;
private string _standard;
private string _shape;
private string _crownType;
private string _pavType;
private string _wight;
private string _cutLevelTotal;
private string _symLevelTotal;
public ICommand ChangeNormCommand { get; }
public DataTable DtResults{ get { return _dtResults; } set { _dtResults = value; OnPropertyChanged("DtResults"); } }
public DataTable DtResults{ get { return _dtResults; } set { _dtResults = value; OnPropertyChanged(nameof(DtResults)); } }
public DataTable Info { get { return _info; } set { _info = value; OnPropertyChanged(nameof(Info)); } }
public string Standard { get { return _standard; } set { _standard = value; OnPropertyChanged(nameof(Standard)); } }
public string Shape { get { return _shape; } set { _shape = value; OnPropertyChanged(nameof(Shape)); } }
public string CrownType { get { return _crownType; } set { _crownType = value; OnPropertyChanged(nameof(CrownType)); } }
public string PavType { get { return _pavType; } set { _pavType = value; OnPropertyChanged(nameof(PavType)); } }
public string Wight { get { return _wight; } set { _wight = value; OnPropertyChanged(nameof(Wight)); } }
public string CutLevelTotal { get { return _cutLevelTotal; } set { _cutLevelTotal = value; OnPropertyChanged(nameof(CutLevelTotal)); } }
public string SymLevelTotal { get { return _symLevelTotal; } set { _symLevelTotal = value; OnPropertyChanged(nameof(SymLevelTotal)); } }
public DataTable DSList { get { return _dsList; } set { _dsList = value; OnPropertyChanged(nameof(DSList)); } }
public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } }
/// <summary>
/// 构造
/// </summary>
@ -20,9 +40,7 @@ public class GradingResultVM : BaseViewModel
{
ChangeNormCommand = new RelayCommand(ChangeNorm);
_dtResults = new DataTable();
InitCombobox();
}
/// <summary>
@ -34,9 +52,35 @@ public class GradingResultVM : BaseViewModel
}
private void InitCombobox()
{
// DS下拉列表初始化
InitDSlist();
// 等级下拉列表初始化
InitGradeList();
}
private void InitDSlist()
{
DSList = new DataTable();
DSList.Columns.Add("Key");
DSList.Columns.Add("Value");
DSList.Rows.Add("pass", "pass");
DSList.Rows.Add("refer", "refer");
}
private void InitGradeList()
{
GradeList = new DataTable();
GradeList.Columns.Add("Key");
GradeList.Columns.Add("Value");
GradeList.Rows.Add("极好", "Exc");
GradeList.Rows.Add("很好", "VG");
GradeList.Rows.Add("好", "G");
GradeList.Rows.Add("一般", "F");
GradeList.Rows.Add("差", "P");
}
#region 钻石操作相关
//暂略
//部分代码(直接操作控件)需要在xaml.cs里边写
//涉及到计算部分,这里做一个中转
#endregion
#endregion
}

@ -45,6 +45,7 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
@ -101,6 +102,23 @@
</Grid>
</Viewbox>
</Button>
<Button Grid.Column="4" Width="230" Height="400" Background="Transparent" BorderBrush="Transparent"
VerticalAlignment="Center" HorizontalAlignment="Center"
MouseEnter="SettingButton_OnMouseEnter" MouseLeave="SettingButton_OnMouseLeave"
Command="{Binding SettingConfigCommand}">
<Viewbox>
<Grid Margin="0 " Width="200" Height="400">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" x:Name="imgSet" Source="../../Resource/Images/Setting_Def@3x.png" Width="180" Height="180" ></Image>
<TextBlock Grid.Row="1" x:Name="tbSet" Text="{DynamicResource System Settings}" TextWrapping="Wrap" Width="180" Height="100" FontSize="24"
TextAlignment="Center" Foreground="Azure"/>
</Grid>
</Viewbox>
</Button>
</Grid>
</Grid>

@ -54,4 +54,18 @@ public partial class ConfigMenuPage
imgCut.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resource/Images/Cut_Def@3x.png"));
tbCut.Foreground = new SolidColorBrush(Colors.Azure);
}
private void SettingButton_OnMouseEnter(object sender, MouseEventArgs e)
{
var brushConverter = new BrushConverter();
imgSet.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resource/Images/Setting_Sel@3x.png"));
tbSet.Foreground = (Brush)brushConverter.ConvertFromString("#9C7C5E"); ;
}
private void SettingButton_OnMouseLeave(object sender, MouseEventArgs e)
{
var brushConverter = new BrushConverter();
imgSet.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resource/Images/Setting_Def@3x.png"));
tbSet.Foreground = new SolidColorBrush(Colors.Azure);
}
}

@ -56,7 +56,7 @@
BorderBrush="Transparent"
FontSize="16" FontFamily="AlibabaPuHui-regular" />
<TextBox TextWrapping="Wrap" Name ="Id" Grid.Column="2" Text="{Binding InputText}" />
<TextBlock Text="请输入" Grid.Column="2" Foreground="Gray" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5">
<TextBlock Text="{DynamicResource Please enter}" Grid.Column="2" Foreground="Gray" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>

@ -90,7 +90,6 @@
</Button.Style>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Border>

@ -22,11 +22,88 @@
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Background="White" Height="50">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
</Grid.RowDefinitions>
<Button Content="{DynamicResource SaveAs}" Foreground="#ffffff" Background="#A7896F" Width="70"/>
<Button Grid.Column="1" Content="{DynamicResource Export}" Foreground="#ffffff" Background="#A7896F" Width="70"/>
<Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="1" BorderBrush="#6E6A6A">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="7*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="DS" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<ComboBox Grid.Column="1" ItemsSource="{Binding DSList}"
DisplayMemberPath="Key" SelectedValuePath="Value" SelectedValue="{Binding DS, Mode=TwoWay}"/>
</Grid>
</Border>
<Border Grid.Column="2" Grid.Row="0" Background="#E7E7E7" BorderBrush="#BBBBBB" CornerRadius="3" BorderThickness="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{DynamicResource Standard}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="1" Text="{DynamicResource Shape}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="2" Text="{DynamicResource Crown}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="3" Text="{DynamicResource Pav}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="4" Text="{DynamicResource Wight}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
</Grid>
</Border>
<Border Grid.Column="2" Grid.Row="1" Background="Transparent" BorderBrush="#D9D9D9" CornerRadius="3" BorderThickness="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Standard}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="1" Text="{Binding Shape}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="2" Text="{Binding CrownType}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="3" Text="{Binding PavType}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
<TextBlock Grid.Column="4" Text="{Binding Wight}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
</Grid>
</Border>
<Border Grid.Column="3" Grid.Row="0" Background="#E7E7E7" BorderBrush="#BBBBBB" CornerRadius="3" BorderThickness="1">
<Grid>
<TextBlock Grid.Column="0" Text="{DynamicResource CutLevel}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
</Grid>
</Border>
<Border Grid.Column="3" Grid.Row="1" Background="#d1d1d1" BorderBrush="#BBBBBB" CornerRadius="3" BorderThickness="1">
<Grid>
<TextBlock Grid.Column="0" Text="{Binding CutLevelTotal}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False" Foreground="#848484"/>
</Grid>
</Border>
<Border Grid.Column="4" Grid.Row="0" Background="#E7E7E7" BorderBrush="#BBBBBB" CornerRadius="3" BorderThickness="1">
<Grid>
<TextBlock Grid.Column="0" Text="{DynamicResource SymLevel}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False"/>
</Grid>
</Border>
<Border Grid.Column="4" Grid.Row="1" Background="#d1d1d1" BorderBrush="#BBBBBB" CornerRadius="3" BorderThickness="1">
<Grid>
<TextBlock Grid.Column="0" Text="{Binding SymLevelTotal}" VerticalAlignment="Center" HorizontalAlignment="Center" IsEnabled="False" Foreground="#848484"/>
</Grid>
</Border>
</Grid>
</Border>
<Border Grid.Row="1" Grid.Column="0" Background="Aqua">
<DataGrid HeadersVisibility="All" AutoGenerateColumns="False" ItemsSource="{Binding DtResults}">
<DataGrid HeadersVisibility="All" AutoGenerateColumns="False" ItemsSource="{Binding DtResults}" SelectionChanged="DataGrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Width="120" IsReadOnly="True" Header="" Binding="{Binding Name}"/>
<DataGridTextColumn Width="Auto" IsReadOnly="True" Header="{DynamicResource resAvg}" Binding="{Binding Avg}"/>
@ -34,7 +111,15 @@
<DataGridTextColumn Width="Auto" IsReadOnly="True" Header="{DynamicResource resShen}" Binding="{Binding Shen}"/>
<DataGridTextColumn Width="Auto" IsReadOnly="True" Header="{DynamicResource resMin}" Binding="{Binding Min}" />
<DataGridTextColumn Width="Auto" IsReadOnly="True" Header="{DynamicResource resMax}" Binding="{Binding Max}"/>
<DataGridTextColumn Width="Auto" IsReadOnly="True" Header="{DynamicResource resLevel}" Binding="{Binding Level}"/>
<DataGridTextColumn Width="Auto" IsReadOnly="True" Header="{DynamicResource CutLevel}" Binding="{Binding CutLevel}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding GradeList}"
DisplayMemberPath="Key" SelectedValuePath="Value" SelectedValue="{Binding SymLevel, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<!-- <DataGridTemplateColumn Width="Auto" IsReadOnly="True" Header="操作" > -->
<!-- <DataGridTemplateColumn.CellTemplate> -->
<!-- <DataTemplate> -->

@ -119,4 +119,14 @@ public partial class GradingResult
Console.WriteLine("点击的对象不是 MeshGeometryModel3D");
}
}
private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
private void DataGrid_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
}
}
Loading…
Cancel
Save