小编Rob*_* J.的帖子

Internet Explorer上的Array.from

我在Internet Explorer上的角度应用程序有问题.它运行无处不在(Chrome,Mozilla,Edge),但在IE上.

我已经在Developer Explorer中分析了错误,并返回错误发生在以下行:

myDataSet[index - 1].data = Array.from(tmp);

这是我得到的以下错误消息:

Object does not support property or method from at Anonymous function....(etc.)

我在那里做的是我有一个包含以下数据的Set()命名tmp:

在此输入图像描述

之后我只是从这里创建一个简单的数组对象Set.

我怎么解决这个问题?

编辑

根据建议我已将以下代码添加到我的应用程序:

if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { return 0; }
      if (number === …
Run Code Online (Sandbox Code Playgroud)

javascript arrays internet-explorer angularjs

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

Dart / Flutter 默认日期格式

我正在尝试格式化DateTime结果并将其显示给用户当前设备​​语言环境中的用户。

目前我可以显示整个DateTime如下:

2018-10-08 16:08:37.464112

或者通过指定这样的确切格式:

DateFormat("dd.MM.yyyy").format(DateTime.now())
Run Code Online (Sandbox Code Playgroud)

结果如下:

08.10.2018

我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;在例如美国(和许多其他国家/地区),他们习惯于使用不同的日期格式,例如

10/08/2018

我的问题是:如何以当前语言环境的格式仅将日期(而不是时间)返回给用户?


需要检索当前语言环境并将其传递给格式函数。我正在使用自定义本地化类,但使用开箱即用的解决方案,它看起来像这样:

DateFormat.yMMMd(Localizations.localeOf(context)).format(result);
Run Code Online (Sandbox Code Playgroud)

datetime string-formatting dart flutter

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

从后台Worker更新ObservableCollection

我有一个绑定的DatGrid var Result_Full = new ObservableCollection<IP_DataRow>().这是一个包含多个字符串和双变量的简单类.没什么难的.

我所做的是,我读了一个Excel文件(使用Telerik RadSpreadProcessing),它将行解析到我的类中.我在一个线程上执行此操作,以便不阻止UI.我遇到了一些问题:

1)我不能ref在读取excel文件的长进程中使用关键字(因为Result_Full是绑定到DataGrid的公共属性),但是我必须创建临时ObservableCollection<IP_DataRow>()值,其中放置值.完成该过程后,我运行以下脚本来复制值:

        foreach (var item in tmpFull)
        {
            InvokeOnUIThread(() =>
            {
                Result_Full.Add(item);
            });
        }
Run Code Online (Sandbox Code Playgroud)

我想做的是,能够实时查看(如果可能)如何将项目添加到我的DataGrid中的集合中.

当我使用.Net 4.5时,我尝试BindingOperations.EnableCollectionSynchronization按照其他帖子的建议实现,但我无法弄清楚如何将我的UI模型集合Result_Full绑定到进程中临时使用的.

2)即使使用当前设置,当我(在我的UI下)移动到包含DataGrid的我的Tab(我的DataGrid在不同的TabPage上)时,我尝试使用上面提到的代码将新项添加到集合中,它返回错误说:调用线程无法访问此对象,因为另一个线程拥有它.,这是相当奇怪的,因为InvokeOnUIThread只不过是Dispatcher.Invoke(),它应该是线程安全的?

任何帮助将受到高度赞赏.

编辑:显示更多代码:

这是我从BackgroundWorker调用的过程:

    public void ProcessFile()
    {
        var tmpError = new ObservableCollection<IP_DataRow>();
        var tmpFull = new ObservableCollection<IP_DataRow>();

        var _reader = new IP_ExcelReader(sExcelPath, ref tmpError, ref tmpFull);
        string sResult = _reader.ReadExcelFile();
        if (sResult != string.Empty)
        {
            System.Windows.MessageBox.Show("Error processing selected …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid multithreading mvvm

6
推荐指数
1
解决办法
1463
查看次数

Flutter 提供者状态管理,注销概念

我正在尝试为我的应用程序实现自定义注销解决方案,无论用户当前在哪里,一旦Logout button点击,应用程序将导航回Login page.

我的想法是,与其监听每个组件的状态更改,不如在主组件上使用一个监听器 -> MyApp

为简单起见,我将项目精简到最低限度。这是我的 Profile 类的样子:

class Profile with ChangeNotifier {
  bool _isAuthentificated = false;
  bool get isAuthentificated => _isAuthentificated;
  set isAuthentificated(bool newVal) {
    _isAuthentificated = newVal;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,在 下Main,我已注册此提供程序如下:

void main() => runApp(
      MultiProvider(
        providers: [
          ChangeNotifierProvider(
            create: (_) => Profile(),
          )
        ],
        child: MyApp(),
      ),
    );
Run Code Online (Sandbox Code Playgroud)

最后是MyApp组件:

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext …
Run Code Online (Sandbox Code Playgroud)

state-management flutter flutter-provider flutter-state

5
推荐指数
1
解决办法
3877
查看次数

iTextSharp从特定位置读取

从PDF文件中读取数据时,我遇到使用iTextSharp的问题.我想要实现的是只读取PDF页面的特定部分(我想只检索位于恒定位置的地址信息).我在阅读以下所有页面时看到了iTextSharp的用法:

        StringBuilder text = new StringBuilder();

        if (File.Exists(fileName))
        {
            PdfReader pdfReader = new PdfReader(fileName);

            for (int page = 1; page <= pdfReader.NumberOfPages; page++)
            {
                ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

                currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                text.Append(currentText);
            }
            pdfReader.Close();
        }
        return text.ToString();
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能将它限制在特定的位置?我愿意使用任何东西,甚至是OCR技术,因为将来某些文件可能会成为图像(但此时不是必需的).这个项目仅适合我,所以没有商业用途.

谢谢!

c# ocr itextsharp

4
推荐指数
1
解决办法
8278
查看次数

Windows 10(通用Windows应用程序)数据验证

我试图弄清楚如何在UWP下进行数据验证,但根据我发现的情况,基本上没有什么我可以实现的.

因此,我试图实现我的自定义验证逻辑.我现在遇到的问题是,我在一个TextBlock而不是直接在TextBox包含数据错误的特定信息下显示错误信息.

这就是我现在所做的:

public class Customer : ViewModel
{
    private string _Name = default(string);
    public string Name { get { return _Name; } set { SetProperty(ref _Name, value); OnPropertyChanged("IsValid"); } }


    private string _Surname = default(string);
    public string Surname { get { return _Surname; } set { SetProperty(ref _Surname, value); OnPropertyChanged("IsValid"); } }

    private DateTime _DateOfBirth = default(DateTime);
    public DateTime DateOfBirth { get { return _DateOfBirth; } set { SetProperty(ref _DateOfBirth, value); OnPropertyChanged("IsValid"); } }

    public …
Run Code Online (Sandbox Code Playgroud)

c# validation wpf win-universal-app

4
推荐指数
2
解决办法
3924
查看次数

RecyclerView数据绑定项目单击

我试图从Activity本身(而不是来自适配器)监听我的Recycler视图上的行点击(项目点击).

我的适配器到目前为止如下所示:

public class ListMiestnostiAdapter extends RecyclerView.Adapter<ListMiestnostiAdapter.ViewHolder>{
    private List<Miestnost> data;

    // you provide access to all the views for a data item in a view holder
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public ViewDataBinding binding;

        public ViewHolder(ViewDataBinding binding) {
            super(binding.getRoot());
            this.binding = binding;
        }

        public void bind(Object obj){
            binding.setVariable(BR.obj, obj);
            binding.executePendingBindings();
        }
    }

    public ListMiestnostiAdapter(List<Miestnost> data) {
        this.data = data;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // create a new view
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        ActivityListMiestnostiRowBinding …
Run Code Online (Sandbox Code Playgroud)

android android-adapter android-recyclerview android-databinding

4
推荐指数
1
解决办法
4701
查看次数

将 List&lt;Widget&gt; 动态添加到 ListView.children

我正在尝试动态构建我的一部分ListView.children[],但我无法将它们推送到已经存在的数组。这是我的简化代码:

  Widget buildNavigationDrawer(BuildContext context) {
    return Drawer(
      child: ListView(
        // Important: Remove any padding from the ListView.
        padding: EdgeInsets.zero,
        children: <Widget>[
          DrawerHeader(...code for header of drawer),

          _buildUserGroups(context).map((Widget item)=> item),

          ListTile(
            leading: Icon(Icons.account_circle),
            title: Text('Settings'),
            onTap: () {
              Navigator.push(
                  context,
                  FadeTransitionRoute(
                      builder: (context) => MainSettingsPage()));
            },
          ),
        ],
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

其中_buildUserGroups()函数看起来像这样(简化):

  List<Widget> _buildUserGroups(BuildContext context) {
    var userGroup = List<Widget>();
    userGroup.add(Text("Users"));

    for (var i = 0; i < 5; i++) {
      userGroup.add(Text("User " + i.toString()));
    }

    return …
Run Code Online (Sandbox Code Playgroud)

listview dart flutter

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

C#LINQ更新项列表<string>

我有更新单个项目的问题,List<string>使用LINQ匹配不同的字符串.假设我有一个名单列表,我想检查名单"John"是否已存在于我的列表中.如果是,则将"John"替换为"Anna".

这是我做的:

var sItem = myList.First(n=> n == "John"); //I am 100% sure that John exists, that\s why I use .First
sItem = "Anna";
Run Code Online (Sandbox Code Playgroud)

这是它应该如何工作,但当我在进程后检查我的List(myList)时,原始项目仍然存在(我仍然可以看到John,而不是Anna).我也尝试在List上实现INotifyChanged,但仍然没有结果.

我究竟做错了什么?

c# linq

3
推荐指数
2
解决办法
6648
查看次数

c#?:带参数的运算符

我有以下课程:

public class SubStredisko
{
    public string Name { get; set; }
    public string Code { get; set; }

    public VyplatnePasky VyplatnaPaska { get; set; }
    public MzdoveNaklady MzdoveNaklady { get; set; }
    public Poistne Poistne { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我有两个SubStredisko项目,其中一个肯定是null.我想要做的是,我有一个单独的方法,它做了一些处理SubStredisko,如更改值VyplatnaPaska等.这是它的样子:

    private static void VyplatnePasky_Items(ref Stredisko stredisko, XElement myElement)
    {
        //some logic here
    }
Run Code Online (Sandbox Code Playgroud)

我现在尝试做的事情(我遇到的问题)是使用?:运算符以下列方式调用此方法:

VyplatnePasky_Items((sPracovisko == null) ? ref sPracovisko_Dohodari : ref sPracovisko,xElement);
Run Code Online (Sandbox Code Playgroud)

但它突出显示sPracovisko_DohodarisPracovisko出现以下错误: …

c# logical-operators

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