小编l46*_*kok的帖子

在WPF中安全地访问UI(主)线程

我有一个应用程序,每次我正在观看的日志文件更新时都会更新我的数据网格(附加新文本),方法如下:

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)

.net c# wpf datagrid multithreading

79
推荐指数
3
解决办法
11万
查看次数

Gson序列化多态对象列表

我正在尝试使用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:BatchInobixBatchout字符串丢失).这是我的基类:

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)

java serialization json gson

42
推荐指数
3
解决办法
3万
查看次数

XDocument.Descendants没有返回后代

<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完全跳过循环.我在这做错了什么?

.net c# xml linq-to-xml

36
推荐指数
2
解决办法
2万
查看次数

如何在第一次单击时激活组合框(Datagridview)

在winforms中,您需要单击组合框两次以正确激活它 - 第一次聚焦它,第二次实际获取下拉列表.

如何更改此行为以便在第一次单击时激活?

这适用于DATAGRIDVIEW组合框.

.net c# combobox datagridview winforms

34
推荐指数
3
解决办法
4万
查看次数

如何在Entity Framework中编写参数化的原始sql查询

如何在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上抛出一个错误,因为它期望一个值.

.net c# sql asp.net-mvc entity-framework

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

使AvalonEdit MVVM兼容

我正在尝试在我的WPF应用程序中使Avalon MVVM兼容.从谷歌搜索,我发现AvalonEdit不是MVVM友好的,我需要通过创建一个派生自TextEditor的类然后添加必要的依赖属性来导出AvalonEdit的状态.我担心Herr Grunwald 在这里的回答让我很失落:

如果你真的需要使用MVVM导出编辑器的状态,那么我建议你创建一个派生自TextEditor的类,它添加必要的依赖属性并将它们与AvalonEdit中的实际属性同步.

有没有人有一个例子或有关如何实现这一目标的好建议?

.net c# wpf mvvm avalonedit

18
推荐指数
2
解决办法
9524
查看次数

将List <string>转换为StringCollection

我需要上面的功能,因为我只能将StringCollection存储到Settings,而不是List of strings.

如何将List转换为StringCollection?

.net c# string winforms

13
推荐指数
2
解决办法
2万
查看次数

扫描NFC标签时启动特定活动

我正在尝试在手机扫描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)

android nfc

13
推荐指数
1
解决办法
7979
查看次数

Android缩放/转换画布不会修改可点击区域

我在这里描述了一个非常类似的问题,除了使用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)

java android canvas

13
推荐指数
1
解决办法
759
查看次数

如何使用正则表达式匹配引号中的字符串

假设我在文本文件中有以下文本

第一文

"一些文字"

"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时,这可能就是为什么我一直得到空字符串的原因.为什么会这样?

.net c# regex string

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