我有三个嵌套课程,Show,Season和Episode,其中一个节目有季节,季节有剧集.
我想绑定两个列表框,以便第一个列出季节,第二个列出该季节的剧集.
我怎样才能做到这一点?我更喜欢在代码中设置它,而不是xaml,但如果你知道如何使用xaml,它总比没有好.
简化的xaml:
<Window>
<Label name="Showname" />
<ListBox name="Seasons" />
<ListBox name="Episodes" />
</Window>
Run Code Online (Sandbox Code Playgroud)
和一些相关的代码:
public partial class Window1 : Window
{
public Data.Show show { get; set; }
public Window1()
{
this.DataContex = show;
//Bind shows name to label
Binding bindName = new Binding("Name");
ShowName.SetBinding(Label.ContentProperty, bindName);
//Bind shows seasons to first listbox
Binding bindSeasons = new Binding("Seasons");
Seasons.SetBinding(ListBox.ItemsSourceProperty, bindSeasons);
Seasons.DisplayMemberPath = "SeasonNumber";
Seasons.IsSyncronizedWithCurrentItem = true;
//Bind current seasons episodes to second listbox
Binding bindEpisodes = new Binding("?????");
Episodes.SetBinding(ListBox.ItemsSourceProperty, …Run Code Online (Sandbox Code Playgroud) 是否可以在后台线程中的TWebBrowser中加载网页?
当应用程序加载时,我想从Web下载一个页面到TWebBrowser,但我不想阻止gui-thread.
有什么建议?
一些说明:
webbrowser组件生活在表单上,我想从Web上显示一个页面.但我想在后台线程中完成该页面的所有下载,因此加载繁重的页面不会阻止gui-thread.
我想我能够编写一般的线程.
在一个文件中,我有一个带有ID属性的基类:
type
TBase = class(TObject)
private
FID: integer;
public
property ID: integer read FID write SetID;
end;
Run Code Online (Sandbox Code Playgroud)
在第二个文件中,我有另一个类,从TBase下降.无意中,或无知或任何时候,都会创建一个与现有属性/字段同名的新属性/字段.
type
TSub = class(TBase)
private
FID: Longword;
public
property ID: Longword read FID write FID;
end;
Run Code Online (Sandbox Code Playgroud)
第二个ID字段当然是重命名的,但为什么编译器允许这样做?
在代码中访问ID时 - 使用哪个ID字段?
我有一个项目组,主项目和测试项目.
在主项目中为类编写单元测试时,是否在测试项目中包含源文件,或者是否在搜索路径中放置了它的路径?
你为什么一个做另一个?
对此有什么最佳做法吗?
更新:看起来包含是首选选项,很大程度上是因为"访问"搜索路径中所有单元的缺点,而不是只访问您打算使用的单元.但是,让我烦恼的是需要在两个项目中始终包含一个文件.我通常将测试项目保留为活动项目,因此当我需要一个新类时,我创建一个新单元,它成为测试项目的一部分,但将其存储在主项目路径下.现在,我需要记住也将它包含在主项目中.应该有一个'创建新单位,并将其添加到所有开放项目' - 行动....
我对于仿制药的理解以及它们如何能够和不能被使用有点挣扎.
我有一个通用类TControlMediator,如下所示:
TControlMediator<C, T> = class
private
FMediatedComponent: C;
public
constructor Create(ComponentToMediate: C);
function GetValue: T; virtual; abstract;
procedure SetValue(Value: T); virtual; abstract;
property MediatedControl: C read FMediatedComponent;
end;
Run Code Online (Sandbox Code Playgroud)
然后我为每个我想调解的控件类型制作'concret'子类:
TEditMediator = class(TControlMediator<TEdit, string>)
public
function GetValue: string; override;
procedure SetValue(Value: string); override;
end;
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切似乎都运作正常.但是,当我想要一个TControlMediator后代列表,或者将TControlMediator作为方法的参数时,会出现问题:
TViewMediator = class
private
FControlMediators: TList<TControlMEdiator<C, T>>;
public
procedure registerMediator(AControlMediator: TControlMediator<C, T>);
procedure unregisterMediator(AControlMediator: TControlMediator<C, T>);
end;
Run Code Online (Sandbox Code Playgroud)
编译器因致命错误而停止:
[DCC Error] mediator.pas(23): E2003 Undeclared identifier: 'C'
[DCC Error] mediator.pas(28): E2007 Constant or type identifier expected
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何做到这一点?
我正在尝试使用ASIHTTPRequest执行异步请求,但在请求完成时收到通知时会遇到一些问题.
-(void)doDownload{
NSURL *url = [NSURL URLWithString:@"http://www.someurl.com/?"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"someValue" forKey:@"someField"];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished)];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
}
Run Code Online (Sandbox Code Playgroud)
requestFinished永远不会被调用.我在ASIHTTPRequest.m,-handleStreamCompleted中得到一个异常:
if (fileError) {
[self failWithError:fileError];
} else {
[self requestFinished]; <----- this call fails
}
Run Code Online (Sandbox Code Playgroud)
有线索吗?
我有一个带有嵌入式MapView的自定义表格单元,显示一个小区域.当用户选择单元格时,我想推送一个带有更大mapview的新视图和更多信息,例如距离你的位置,选择什么地图类型等.
如果我在mapview周围留下一个小边距,用户可以在该边距中单击以选择单元格,但如果他们在mapview内部单击,如何选择单元格?
问候,
-Vegar
我试图在他的"核心数据"一书中关注Marcus Zarra.在书中,他制作了一个小样本应用程序,但是当事情无法解决时它没有给予太多帮助......
他首先通过可视化设计三个实体,然后将每个实体的阵列控制器添加到主笔尖.其次,他添加了一个tableview和一些其他可视组件来显示来自阵列控制器的数据.
到目前为止,我已经设法遵循,但现在他为gui添加了一个搜索字段,并将其绑定到与其中一个tableviews相同的数组控制器.在搜索字段中键入时,预期的行为将是tableview被过滤,但没有任何反应.
我如何找出问题所在?
笔尖的相关部分如下:
NSArrayController Recipes
- Mode = Entity
- Enitity Name = RecipeTableView w/TableColumn
- 值绑定到配方
- Controller Key = arrangeObjects - Model Key Path = name搜索字段
- 谓词绑定到配方
- 控制器键= filterPredicate
- 模型键路径=名称
- 显示名称=谓词
- 谓词格式= keyPath包含$ value
控制台中没有相关消息.
问候,
-Vegar
今天发现了一段代码,我发现有点臭......
TMyObject.LoadFromFile(const filename: String);
begin
if fileExists(filename) then
self := TSomeObjectStreamer.ReadObjectFromFile(filename);
end;
Run Code Online (Sandbox Code Playgroud)
如果此代码有效,它至少会泄漏一些内存,但是它有效吗?
可以这种方式分配给自己吗?
如果流对象与原始self不同,那该怎么办?
如果流对象是一个与原始self没有共同祖先的不同类,该怎么办?
我有一个 webpack 配置,设置为监视更改。
有时,我想只运行一次构建,然后退出。
我现在通过输入npm run dev(运行webpack --config <config.json>)来解决这个问题,然后Ctrl+C在第一个构建周期完成时点击。
是否有一个命令行开关可以用来推翻配置中的监视设置?像否定--watch开关之类的东西?一个--do-not-watch选择?
delphi ×5
iphone ×2
.net ×1
binding ×1
browser ×1
c# ×1
cocoa ×1
cocoa-touch ×1
core-data ×1
delegates ×1
delphi-2010 ×1
generics ×1
inheritance ×1
mkmapview ×1
objective-c ×1
properties ×1
selector ×1
self ×1
uitableview ×1
unit-testing ×1
webpack ×1
wpf ×1