调试模式与商店应用程序之间的区别

时间:2017-01-18 11:16:18

标签: visual-studio xaml binding uwp store

我开发了一个 UWP应用,目前正在通过商店进行测试。 我使用商店版本遇到一个奇怪的问题,当我从 Visual Studio 构建应用时不会发生这种情况:这对于我理解它或调试它......

ComboBox 中的基本绑定

<ComboBox ItemsSource="{Binding CoreOrderType}"
      SelectedValue="{Binding CarForm.core_order_type, Mode=TwoWay}"
      HorizontalAlignment="Stretch"
      />
  • 在页面打开时,如果应用程序是从 Visual Studio 启动的,则此ComboBox“订单类型已填满:< / LI>

Visual Studio - ComboBox is filled

  • 商店版本的情况并非如此:

此ComboBox“订单类型为空Store - ComboBox is empty

但如果打开列表,包含预期值Store - But value is present

=&GT;你有什么解释吗?我该怎么调试呢?

编辑1:添加ViewModel和模型中的相关代码

属性

private Car_Forms _carForm;
public Car_Forms CarForm
{
    get { return _carForm; }
    set
    {
        this._carForm = value;
        RaisePropertyChanged(() => CarForm);
    }
}

private ObservableCollection<V_Core_Order> _vCoreOrders;
public ObservableCollection<V_Core_Order> VCoreOrders
{
    get { return _vCoreOrders; }
    set { Set(ref _vCoreOrders, value); }
}

=&GT; CarForm 是我的网页的“根”对象, VCoreOrders 是附加到ComboBox的列表

构造

public DetailsViewModel(Guid? id)
{
    ...
    // Load Car_Forms
    LoadDatas(id);
}

=&GT;在构造函数中,我调用 LoadDatas()方法,该方法加载表单和列表的详细信息

模型

private string _core_order_type;
[MaxLength(200), NotNull]
public string core_order_type
{
    get
    {   return _core_order_type; }
    set
    {
        if (value != _core_order_type)
        {
            _core_order_type = value;
            if (value != null || value != string.Empty)
                core_order_type_error = false;
            RaisePropertyChanged(() => core_order_type);
        }
    }
}

=&GT;当我在Setter中放置断点时,我可以看到永远不会为空

编辑2:添加新的详细信息和视频链接

最后问题不仅发生在商店版本上,所以这不是“本地代码”的问题:

  • 如果我从Visual Studio 启动应用:此问题从不发生
  • 如果我在Visual Studio 之外重新启动应用:此问题会发生随机

我还添加了绑定到同一项目的 TextBlock CarForm.core_order_type

<TextBlock Text="{Binding CarForm.core_order_type, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

我上传了一个显示相同表单开头的简短视频:我们可以看到问题是第一次出现,但不是以下时间: bug in video

在实践中,错误可能会发生几次:它确实是randomally。

0 个答案:

没有答案