我在Android Developer网站上浏览了Bound Service.我以为我已经理解了这项服务,但我刚刚找到了另一种通过使用Messenger类来连接服务的方法,特别是对于本地服务.在那里我感到困惑.也许我的概念错了.
这是我对Android的理解Service.您何时创建服务
混淆是列表中的第一项,即背景的定义.背景不是线程或进程吗?我从未想过它可以在主线程上运行.
以下是开发页面中关于服务的注意事项.
警告:服务在其托管进程的主线程中运行 - 该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定).这意味着,如果您的服务要进行任何CPU密集型工作或阻止操作(例如MP3播放或网络),您应该在服务中创建一个新线程来完成这项工作.通过使用单独的线程,您将降低应用程序无响应(ANR)错误的风险,并且应用程序的主线程可以保持专用于用户与您的活动的交互.
问题
我正在阅读MVVM架构如何工作以及如何使用Android数据绑定库帮助.
以一种非常通用的方式,我理解Android数据绑定在UI层和保存要显示的信息的底层数据模型之间创建链接.
Kotlin Android Extensions是另一个Kotlin插件,允许您从活动,片段和视图中恢复视图.该插件将生成一些额外的代码,允许您访问XML布局中的视图,就像它们是具有您在布局定义中使用的ID名称的属性一样.
使用Android数据绑定库和Kotlin Android Extensions有什么区别?它们用于不同的目的吗?他们以什么方式相互补充?
谢谢您的回答.
或者,更清楚的是,如何格式化文本块(在我的情况下,包含在工具提示中),使得文本的某些部分来自绑定值.
在普通的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中执行此格式化?
是否可以在另一个对象的上下文中执行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) 我需要更改为以下代码,以便背景为红色,我尝试的两种方式都没有:
替代文字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) 当表单被禁用时,我希望我的表单中的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中绑定这些属性?有没有更好的方法呢?
在我的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
有没有人知道C#的一组绑定直接驱动FFMpeg库?我可以直接shell到ffmpeg.exe,但我发现很难同步/控制作为一个单独的进程.任何帮助,将不胜感激.
任何人都可以帮助以下 - 一直在玩这个,但不能为我的生活让它工作.
我有一个包含以下属性的视图模型;
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)
非常感谢您的帮助.
我正在尝试使用以下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 …
binding ×10
.net ×5
c# ×4
wpf ×4
android ×2
assemblies ×1
background ×1
dynamic ×1
ffmpeg ×1
formatting ×1
kotlin ×1
listbox ×1
properties ×1
reference ×1
ruby ×1
selecteditem ×1
service ×1
xaml ×1