我有一个应用程序,每次我正在观看的日志文件更新时都会更新我的数据网格(附加新文本),方法如下:
private void DGAddRow(string name, FunctionType ft)
{
ASCIIEncoding ascii = new ASCIIEncoding();
CommDGDataSource ds = new CommDGDataSource();
int position = 0;
string[] data_split = ft.Data.Split(' ');
foreach (AttributeType at in ft.Types)
{
if (at.IsAddress)
{
ds.Source = HexString2Ascii(data_split[position]);
ds.Destination = HexString2Ascii(data_split[position+1]);
break;
}
else
{
position += at.Size;
}
}
ds.Protocol = name;
ds.Number = rowCount;
ds.Data = ft.Data;
ds.Time = ft.Time;
dataGridRows.Add(ds);
rowCount++;
}
...
private void FileSystemWatcher()
{
FileSystemWatcher watcher = new FileSystemWatcher(Environment.CurrentDirectory);
watcher.Filter = syslogPath;
watcher.NotifyFilter …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Gson将涉及多态的对象序列化/反序列化为JSON.
这是我的序列化代码:
ObixBaseObj lobbyObj = new ObixBaseObj();
lobbyObj.setIs("obix:Lobby");
ObixOp batchOp = new ObixOp();
batchOp.setName("batch");
batchOp.setIn("obix:BatchIn");
batchOp.setOut("obix:BatchOut");
lobbyObj.addChild(batchOp);
Gson gson = new Gson();
System.out.println(gson.toJson(lobbyObj));
Run Code Online (Sandbox Code Playgroud)
这是结果:
{"obix":"obj","is":"obix:Lobby","children":[{"obix":"op","name":"batch"}]}
Run Code Online (Sandbox Code Playgroud)
序列化大多的作品,除了它缺少继承成员的内容(尤其是obix:BatchIn
和obixBatchout
字符串丢失).这是我的基类:
public class ObixBaseObj {
protected String obix;
private String display;
private String displayName;
private ArrayList<ObixBaseObj> children;
public ObixBaseObj()
{
obix = "obj";
}
public void setName(String name) {
this.name = name;
}
...
}
Run Code Online (Sandbox Code Playgroud)
这是我继承的类(ObixOp)的样子:
public class ObixOp extends ObixBaseObj {
private String in;
private String out;
public ObixOp() { …
Run Code Online (Sandbox Code Playgroud) <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SetNationalList xmlns="http://www.lge.com/ddc">
<nationalList>
<portnumber>6000</portnumber>
<slaveaddress>7000</slaveaddress>
<flagzone>2</flagzone>
<flagindivisual>5</flagindivisual>
<flagdimming>3</flagdimming>
<flagpattern>6</flagpattern>
<flaggroup>9</flaggroup>
</nationalList>
</SetNationalList>
</s:Body>
</s:Envelope>
Run Code Online (Sandbox Code Playgroud)
XDocument xdoc = XDocument.Parse(xml);
foreach (XElement element in xdoc.Descendants("nationalList"))
{
MessageBox.Show(element.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我想遍历每个节点,nationalList
但它不适合我,它foreach
完全跳过循环.我在这做错了什么?
在winforms中,您需要单击组合框两次以正确激活它 - 第一次聚焦它,第二次实际获取下拉列表.
如何更改此行为以便在第一次单击时激活?
这适用于DATAGRIDVIEW组合框.
如何在Entity Framework中编写参数化的原始sql查询?我尝试过以下方法:
string dateQueryString = String.Join(",", chartModelData.GetFormattedDateList());
//Dates returned in format of 20140402,20140506,20140704
const string selectQuery =
@"SELECT
MAX(DATA_SEQ) AS MaxSeq, MIN(DATA_SEQ) AS MinSeq, COUNT(1) AS TotSampleCnt
FROM SPCDATA_TB
WHERE DATA_WDATE IN @DateParam
AND LINE_CODE = @LineCode
AND MODEL_NO = @ModelNumber
AND LOT_NO = @LotNumber
AND EQUIP_NO LIKE @EquipNumber";
SPCDataSeqCntInfo dataSeqCntInfo = _dbContext.Database.SqlQuery<SPCDataSeqCntInfo>(
selectQuery,
new SqlParameter("@DateParam", dateQueryString),
new SqlParameter("@LineCode", chartModelData.LineCode),
new SqlParameter("@ModelNumber", chartModelData.ModelNum),
new SqlParameter("@EquipNumber", equipmentNumber),
new SqlParameter("@LotNumber", chartModelData.LotNum)
).SingleOrDefault() ?? new SPCDataSeqCntInfo();
Run Code Online (Sandbox Code Playgroud)
但正如预期的那样,它会在DateParam上抛出一个错误,因为它期望一个值.
我正在尝试在我的WPF应用程序中使Avalon MVVM兼容.从谷歌搜索,我发现AvalonEdit不是MVVM友好的,我需要通过创建一个派生自TextEditor的类然后添加必要的依赖属性来导出AvalonEdit的状态.我担心Herr Grunwald 在这里的回答让我很失落:
如果你真的需要使用MVVM导出编辑器的状态,那么我建议你创建一个派生自TextEditor的类,它添加必要的依赖属性并将它们与AvalonEdit中的实际属性同步.
有没有人有一个例子或有关如何实现这一目标的好建议?
我需要上面的功能,因为我只能将StringCollection存储到Settings,而不是List of strings.
如何将List转换为StringCollection?
我正在尝试在手机扫描NFC标签时启动特定活动.这就是我的清单的样子:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lgandroid.ddcnfc"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.NFC"/>
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.lgandroid.ddcnfc.BluePrintActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<data android:mimeType="application/com.lgandroid.ddcnfc"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity
android:name="com.lgandroid.ddcnfc.LoginActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.lgandroid.ddcnfc.MainActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.lgandroid.ddcnfc.PointDiagnosisActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.lgandroid.ddcnfc.PointControlActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.lgandroid.ddcnfc.SystemDiagnosisActivity"
android:label="@string/app_name" >
</activity>
<activity android:name="com.lgandroid.ddcnfc.SettingsActivity" android:label="@string/app_name"></activity>
</application>
Run Code Online (Sandbox Code Playgroud)
每当我扫描我的标签时,我的主要活动就会启动,但我希望我的BluePrintActivity能够启动.我不确定为什么会这样.这是我写入标签的代码:
private boolean writeTag(Tag tag) {
NdefRecord appRecord …
Run Code Online (Sandbox Code Playgroud) 我在这里描述了一个非常类似的问题,除了使用ScaleAnimation,我允许在RelativeLayout中进行缩放缩放/平移.
缩放/平移工作完美,但无论我的视图如何平移/缩放,可点击区域都不会随着视觉表示而改变.这是我的dispatchTouchEvent的样子:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (mScaleGestureDetector != null && mGestureDetector != null) {
mScaleGestureDetector.onTouchEvent(ev);
mGestureDetector.onTouchEvent(ev);
}
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
final float x = ev.getX();
final float y = ev.getY();
mLastTouchX = x;
mLastTouchY = y;
mActivePointerId = ev.getPointerId(0);
break;
}
case MotionEvent.ACTION_MOVE: {
final int pointerIndex = ev.findPointerIndex(mActivePointerId);
final float x = ev.getX(pointerIndex);
final float y = ev.getY(pointerIndex);
// Only move if the ScaleGestureDetector …
Run Code Online (Sandbox Code Playgroud) 假设我在文本文件中有以下文本
第一文
"一些文字"
"124arandom txt,不应该被解析!@
"124 Some Text"
"어떤글"
这篇文章不应该被解析
我想检索Some Text
,124 Some Text
并?? ?
作为匹配的字符串.文本逐行读取.Catch是,它必须匹配外语,如果它在引号内.
更新:我发现了一些奇怪的东西.我正在尝试一些随机的东西并发现:
string s = "?? ?"
Regex regex = new Regex("[^\"]*");
MatchCollection matches = regex.Matches(s);
Run Code Online (Sandbox Code Playgroud)
匹配的count = 10并且在其中生成了一些空项(解析后的文本在索引2中).当我正在做Regex.Replace时,这可能就是为什么我一直得到空字符串的原因.为什么会这样?