标签: binding

如果它在android中的同一个线程中运行,为什么要使用Service

我在Android Developer网站上浏览了Bound Service.我以为我已经理解了这项服务,但我刚刚找到了另一种通过使用Messenger类来连接服务的方法,特别是对于本地服务.在那里我感到困惑.也许我的概念错了.

这是我对Android的理解Service.您何时创建服务

  1. 您想在后台执行单独的工作.
  2. 你想让它成为一个单独的过程.
  3. 您希望使其在与启动它的组件无关的生命周期中运行.

混淆是列表中的第一项,即背景的定义.背景不是线程或进程吗?我从未想过它可以在主线程上运行.

以下是开发页面中关于服务的注意事项.

警告:服务在其托管进程的主线程中运行 - 该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定).这意味着,如果您的服务要进行任何CPU密集型工作或阻止操作(例如MP3播放或网络),您应该在服务中创建一个新线程来完成这项工作.通过使用单独的线程,您将降低应用程序无响应(ANR)错误的风险,并且应用程序的主线程可以保持专用于用户与您的活动的交互.

问题

  1. 如果服务函数无论如何都会在主线程上运行,为什么选择使用服务呢?
  2. 我们是否必须编写一个服务来阻止ANR,即使在主线程中完成了耗时的工作?假设该服务仅适用于我的应用程序.
  3. 是否有任何实际案例或理由将服务用作私有并在同一个线程中运行?

service binding android

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

Android数据绑定库与Kotlin Android扩展程序

我正在阅读MVVM架构如何工作以及如何使用Android数据绑定库帮助.

以一种非常通用的方式,我理解Android数据绑定在UI层和保存要显示的信息的底层数据模型之间创建链接.

Kotlin Android Extensions是另一个Kotlin插件,允许您从活动,片段和视图中恢复视图.该插件将生成一些额外的代码,允许您访问XML布局中的视图,就像它们是具有您在布局定义中使用的ID名称的属性一样.

使用Android数据绑定库和Kotlin Android Extensions有什么区别?它们用于不同的目的吗?他们以什么方式相互补充?

谢谢您的回答.

binding android kotlin

32
推荐指数
2
解决办法
3666
查看次数

什么是String.Format的WPF XAML数据绑定等价物?

或者,更清楚的是,如何格式化文本块(在我的情况下,包含在工具提示中),使得文本的某些部分来自绑定值.

在普通的C#中我会使用:

_toolTip.Text = string.Format("{1:#0}% up, {2:#0}% down",
    Environment.NewLine, percentageOne, percentage2);
Run Code Online (Sandbox Code Playgroud)

但是,Text属性的WPF XAML标记似乎只能包含一个绑定.花括号给了我很大的希望,但这是不可能的:

<Element>
  <Element.Tooltip>
    <!-- This won't compile -->
    <TextBlock Text="{Binding Path=PercentageOne}% up, {Binding Path=PercentageTwo}% down"/>
  </Element.Tooltip>
</Element>
Run Code Online (Sandbox Code Playgroud)

我读到该Run.Text属性不是依赖属性,因此不能绑定.

有没有办法在XAML中执行此格式化?

.net wpf formatting binding text-formatting

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

程序的约束

是否可以在另一个对象的上下文中执行proc?

我知道通常你会做proc.call(foo),然后块应该定义一个参数.我想知道我是否可以"自我"绑定到foo,因此没有必要有一个块参数.

proc = Proc.new { self.hello }

class Foo
  def hello
    puts "Hello!"
  end
end

foo = Foo.new

# How can proc be executed within the context of foo
# such that it outputs the string "Hello"?

proc.call
Run Code Online (Sandbox Code Playgroud)

ruby binding

31
推荐指数
1
解决办法
7746
查看次数

如何在WPF/XAML中绑定背景颜色?

我需要更改为以下代码,以便背景为红色,我尝试的两种方式都没有:

替代文字http://www.deviantsart.com/upload/1okq25l.png

XAML:

<Window x:Class="TestBackground88238.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <StackPanel>

        <TextBlock Text="{Binding Message}" Background="{Binding Background}"/>

        <TextBlock Text="{Binding Message}">
            <TextBlock.Background>
                <SolidColorBrush Color="{Binding Background}"/>
            </TextBlock.Background>
        </TextBlock>

    </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

代码背后:

using System.Windows;
using System.ComponentModel;

namespace TestBackground88238
{
    public partial class Window1 : Window, INotifyPropertyChanged
    {

        #region ViewModelProperty: Background
        private string _background;
        public string Background
        {
            get
            {
                return _background;
            }

            set
            {
                _background = value;
                OnPropertyChanged("Background");
            }
        }
        #endregion

        #region ViewModelProperty: Message
        private string _message;
        public string Message
        {
            get
            {
                return …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml binding background

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

如何将控件的属性绑定到另一个控件的属性?

当表单被禁用时,我希望我的表单中的SaveButton消失.我这样做:

this.formStackPanel.IsEnabled = someValue;
if(this.formStackPanel.IsEnabled)
{
    this.saveButton.Visibility = Visibility.Visible;
}
else
{
    this.saveButton.Visibility = Visibility.Collapsed;
}
Run Code Online (Sandbox Code Playgroud)

是不是有办法在XAML中绑定这些属性?有没有更好的方法呢?

.net c# wpf binding properties

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

绑定到ExpandoObject.PropertyChanged无法正常工作

在我的Windows应用商店应用中,我有一个填充了ExpandoObjects的列表.数据绑定适用于初始值,但不适用于我在下载文件后异步设置的图像属性:

public static async void Set<T>(this ExpandoObject thisObject, string property, Func<Task<T>> setter) {
        var expando = thisObject as IDictionary<string, Object>;

        if (!expando.ContainsKey(property)) {
            expando.Add(property, null);
        }
        expando[property] = await setter.Invoke();
    }
Run Code Online (Sandbox Code Playgroud)

在ExpandoObject上连接到PropertyChanged事件确认它是针对所有对象触发的.新属性附加到对象,值正确,但ListView中的项目未完全更新.

该列表包含14个对象.如果我使用常规类型对象而不是ExpandoObjects并使用相同的图像属性异步设置,则14个对象中的一些将在视图中更新(当前不可见的对象).如果我在类中实现了INotifyPropertyChanged,那么所有14个都会更新.使用ExpandoObjects我得到的确切行为与没有INPC的类型对象一样:更新当前不可见的项目.

所以似乎PropertyChanged不使用ExpandoObject和数据绑定.

它在WPF中按预期工作,但不在Store App中工作.查看比较:https: //sites.google.com/site/moramatte/ExpandoComparison.zip ?attredirects = 0&d = 1

.net binding dynamic expandoobject

31
推荐指数
1
解决办法
3099
查看次数

有人知道FFMPEG的一组C#绑定吗?

有没有人知道C#的一组绑定直接驱动FFMpeg库?我可以直接shell到ffmpeg.exe,但我发现很难同步/控制作为一个单独的进程.任何帮助,将不胜感激.

.net c# binding ffmpeg

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

WPF绑定到Listbox selectedItem

任何人都可以帮助以下 - 一直在玩这个,但不能为我的生活让它工作.

我有一个包含以下属性的视图模型;

public ObservableCollection<Rule> Rules { get; set; }
public Rule SelectedRule { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的XAML中,我得到了;

<ListBox x:Name="lbRules" ItemsSource="{Binding Path=Rules}" 
         SelectedItem="{Binding Path=SelectedRule, Mode=TwoWay}">
<ListBox.ItemTemplate>
    <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="Name:" />
                <TextBox x:Name="ruleName">
                    <TextBox.Text>
                        <Binding Path="Name" UpdateSourceTrigger="PropertyChanged" />
                    </TextBox.Text>
                </TextBox>
            </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

现在ItemsSource工作正常,我得到一个Rule对象列表,其名称显示在lbRules中.

我遇到的麻烦是将SelectedRule属性绑定到lbRules的SelectedItem.我尝试将textblock的text属性绑定到SelectedRule,但它始终为null.

<TextBlock Text="{Binding Path=SelectedRule.Name}" />
Run Code Online (Sandbox Code Playgroud)

我在输出窗口中看到的错误是:BindingExpression路径错误:找不到'SelectedRule'属性.

任何人都可以帮助我这个绑定 - 我不明白为什么它不应该找到SelectedRule属性.

然后我尝试将textblock的text属性更改为bellow,这有效.麻烦的是我想在我的ViewModel中使用SelectedRule.

<TextBlock Text="{Binding ElementName=lbRules, Path=SelectedItem.Name}" />
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助.

wpf binding listbox selecteditem

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

程序集绑定重定向不起作用

我正在尝试使用以下app.config设置程序集绑定重定向:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.AnalysisServices"
                          PublicKeyToken="89845dcd8080cc91" />
        <bindingRedirect oldVersion="10.0.0.0"
                         newVersion="9.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我在GAC中使用版本9.0.242.0的计算机上运行该程序,并使用指定的公钥令牌.CLR似乎甚至没有尝试重定向绑定以使用该版本.

这是我在fuslogvw.exe中得到的:

LOG: This bind starts in default load context. LOG: Using application configuration file: \Debug\AssemblyRedirectPOC.exe.Config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: Post-policy reference: Microsoft.AnalysisServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices.DLL. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices/Microsoft.AnalysisServices.DLL. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices.EXE. LOG: Attempting download of new URL …

.net c# binding assemblies reference

30
推荐指数
7
解决办法
5万
查看次数