你好,谢谢!
我正在尝试从Silverlight应用程序访问USB端口.由于Silverlight在沙箱中运行,因此无法执行此操作.
是否可以从Silverlight应用程序内部运行ActiveX控件?(最好不要叠加)
如果是这样:存在哪些例子?这方面的最佳做法是什么?
我正在研究一些现有的Windows窗体的数据绑定,并且我遇到了一个问题,想出了在一个组框内数据绑定一组radiobutton控件的正确方法.
我的业务对象有一个整数属性,我想对4个radiobuttons进行数据绑定(其中每个都代表值0 - 3).
我目前正在绑定一个presenter对象,它作为表单和业务对象之间的绑定器,我现在的方式是拥有4个独立的属性,每个属性都绑定这些值(我使用INotifyPropertyChanged) ,但不包括这里):
Private int _propValue;
Public bool PropIsValue0
{
get { return _propValue == 0; }
set
{
if (value)
_propValue = 0;
}
}
Public bool PropIsValue1 { // As above, but with value == 1 }
Public bool PropIsValue2 { // As above, but with value == 2 }
Public bool PropIsValue3 { // As above, but with value == 3 }
Run Code Online (Sandbox Code Playgroud)
然后我将每个单选按钮绑定到它们各自的属性,如上所述.
这对我来说似乎不对,所以任何建议都受到高度赞赏.
在最近的一次C#和WPF中,我喜欢C#的属性:
public double length_inches
{
get { return length_metres * 39.0; }
set { length_metres = value/39.0; }
}
Run Code Online (Sandbox Code Playgroud)
当然,注意到length_metres可能会从字段变为属性,而代码无需关心.WPF还可以非常愉快地将UI元素绑定到对象属性.
当我第一次学习类和对象时,我认为有一种方法可以做到,因为它看起来很明显!隐藏类中复杂性的关键在于您不再需要关心存储的内容.但直到现在才看到它.
有趣的是,我第一次看到它在VB.Net中完成.OO纯度的前沿.
问题是,我可以重新使用我经常使用的其他语言的属性,比如javascript,python,php吗?在javascript中,如果我将一个变量设置为一个闭包,我不会再次获得闭包,而不是它的结果吗?
如果我想将文件夹的文件绑定到gridview,我可以这样做:
GridView1.DataSource = New DirectoryInfo("C:\MyPix").GetFiles
GridView1.DataBind()
Run Code Online (Sandbox Code Playgroud)
......而这个asp.net
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="Name" />
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
...但是,如果我想将它绑定到转发器,我认为我可以显示如下的文件名:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><%#Container.DataItem("Name")%></ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
...但是这让我得到错误"找不到类型'FileInfo'的默认成员."
该怎么办?
假设你有一个像这样的javascript对象:
var data = { foo: 'bar', baz: 'quux' };
Run Code Online (Sandbox Code Playgroud)
您可以通过属性名称访问属性:
var foo = data.foo;
var baz = data["baz"];
Run Code Online (Sandbox Code Playgroud)
但是,如果您不知道属性的名称,是否可以获取这些值?这些属性的无序性质是否使它们无法区分?
在我的情况下,我特别想到一个函数需要接受一系列名称 - 值对的情况,但属性的名称可能会改变.
到目前为止,我对如何执行此操作的想法是将属性的名称与数据一起传递给函数,但这感觉就像一个黑客.如果可能的话,我宁愿用内省来做这件事.
我工作的代码库有一个名为Pair的对象,其中A和B是Pair中第一个和第二个值的类型.我发现这个对象是冒犯性的,因为它被用来代替具有明确命名成员的对象.所以我发现这个:
List<Pair<Integer, Integer>> productIds = blah();
// snip many lines and method calls
void doSomething(Pair<Integer, Integer> id) {
Integer productId = id.first();
Integer quantity = id.second();
}
Run Code Online (Sandbox Code Playgroud)
代替
class ProductsOrdered {
int productId;
int quantityOrdered;
// accessor methods, etc
}
List<ProductsOrderded> productsOrdered = blah();
Run Code Online (Sandbox Code Playgroud)
代码库中Pair的许多其他用途同样难闻.
我用谷歌搜索了元组,它们似乎经常被误解或以可疑的方式使用.对他们的使用是否存在令人信服的论据?我可以理解不想创建庞大的类层次结构,但是如果没有使用元组,那么类层次结构会爆炸吗?
我有一个锁定mdb的数据库,所以我想备份.但是我正在使用的工具(我有源)在备份之前打开文件并发现它已被锁定.
有没有办法我可以打开它只读目的?
作为参考,该工具使用C#和.NET 2.0(但可以更新为3.5).
考虑一下这个C#片段:
static string input = null;
static string output = null;
static void Main(string[] args)
{
input = "input";
output = CallMe(input);
}
public static string CallMe(string input)
{
output = "output";
return output;
}
Run Code Online (Sandbox Code Playgroud)
使用Reflector进行反汇编显示:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 8
L_0000: nop
L_0001: ldstr "input"
L_0006: stsfld string Reflector_Test.Program::input
L_000b: ldsfld string Reflector_Test.Program::input
L_0010: call string Reflector_Test.Program::CallMe(string)
L_0015: stsfld string Reflector_Test.Program::output
L_001a: ret
}
.method public hidebysig static string CallMe(string input) …Run Code Online (Sandbox Code Playgroud) 你能推荐一个我可以指向SOLR索引的分面查询浏览器吗?理想情况下,这将是看起来像Endeca构建的GUI,其中各种方面从索引中提取,用户点击一个并且现在显示其余项目的适用方面,最终达到原始数据的子集的最终结果.对索引进行单独的Lucene查询很容易,但出于调试目的,我宁愿使用预先构建的浏览器而不是使用自己的浏览器.
c# ×3
javascript ×2
properties ×2
.net ×1
activex ×1
asp.net ×1
c++ ×1
cil ×1
data-binding ×1
database ×1
iteration ×1
lamp ×1
linux ×1
ms-access ×1
object ×1
php ×1
python ×1
radio-button ×1
sandbox ×1
silverlight ×1
solr ×1
tuples ×1
vb.net ×1
winforms ×1
xampp ×1