我正在研究一些现有的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)
然后我将每个单选按钮绑定到它们各自的属性,如上所述.
这对我来说似乎不对,所以任何建议都受到高度赞赏.
我需要一些关于WinForms数据绑定的帮助/指导,我似乎无法让Google帮助我解决这个问题.
这是我的情景.考虑以下类似于我需要的类:
public class Car
{
public string Name { get; set; }
public List<Tire> Tires { get; set; }
}
public class Tire
{
public double Pressure { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的实例将是Car类的一个对象,其中包含一个带有四个Tire对象的List.请注意,我将在列表中始终具有已知数量的对象.
现在我想将数据绑定到包含五个文本框的Form.一个带有汽车名称的文本框和一个带有每个轮胎压力的文本框.
有关如何使这项工作的任何想法?VS中的设计者似乎不允许我通过分配像Tires [0] .Pressure这样的列表索引来设置它.
我目前的解决方案是绑定到"BindableCar",就像:
public class BindableCar
{
private Car _car;
public BindableCar(Car car)
{
_car = car;
}
public string Name
{
get { return _car.Name; }
set { _car.Name = value; }
}
public double Tire1Pressure
{
get { return _car.Tires[0].Pressure; }
set …
Run Code Online (Sandbox Code Playgroud) 请考虑以下条件查询:
var x = SomeCriteria.AddOrder(new Order("Name",true)).List();
这将按名称属性对结果集进行排序,但区分大小写:
"A1"
"B1"
"a2"
Run Code Online (Sandbox Code Playgroud)
任何想法如何添加订单不区分大小写结果"a2"将在"B1"之前结束?
有谁知道我是否可以/如何将二进制格式化的Mac OS X plist文件转换为C#中的纯XML字符串?
我知道有一些针对Windows的plist编辑器说他们支持二进制格式的plist文件,但我需要在我自己的应用程序中内联.
我正在寻找一种在WPF中显示模态窗口的方法,就像在Cocoa中的窗口可以显示为工作表一样,即它从主父窗口前面的标题栏向下滑动.
我的猜测是,这可以通过将模态窗口作为用户控件来实现,该控件在显示时加载到面板中,并且该面板是从标题栏以某种方式动画的面板.
关于如何做到这一点的任何想法?
PS:以下是NSWindow /表的简要说明,如果你不是它的话.
c# ×4
.net ×3
data-binding ×2
winforms ×2
binary ×1
cocoa ×1
macos ×1
modal-dialog ×1
nhibernate ×1
plist ×1
radio-button ×1
wpf ×1