我有一个带有Order属性的对象,我想在我的datagrid中绑定它。可能吗 ?我想更改数据网格中的顺序并在我的对象中使用它(使用order属性)。我可以用绑定来做吗?
[编辑]
public class MyObject
{
...
public int Order {get; set;}
...
}
我想将此属性绑定到我的行的索引。
答案 0 :(得分:0)
好的,还不是很清楚,但我会尝试提供一些答案......
这就是我理解一个问题的方法:你有一个类型为Order
'的属性,名为'Order',并希望在数据网格中编辑这个属性,例如使用Combo
假设你有一个像这样的实体类(所有代码 - 只是例子,因为我不知道你拥有的确切类):
class Something : EntityBase {
................
public int Order { get; set; }
................
}
它包含数据模型,如:
public SomethingModel : EntitydataModelBase<Something> {
................
public int Order {
get {
return this.Entity.Order;
}
set {
if (this.Entity.Order == value) return;
this.Entity.Order = value;
NotifyPropertyChanged("Order");
}
}
................
}
此外,还有一个包含数据网格的屏幕视图模型,如下所示:
public SomethingListViewModel : ViewModelBase {
................
public IList<SomethingModel> _Items;
public IList<SomethingModel> Items {
get {
return _Items;
}
private set {
if (_Items == value) return;
_Items = value;
NotifyPropertyChanged("Items");
}
}
................
}
最后你的XAML:
................
<Grid x:Name="gridContainer"> <!-- We will use this name to make a reference in binding expression --!>
<DataGrid
ItemsSource="{Binding Items, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Columns>
<!-- "Actually, don't remember a name of class for tempolated column" -->
<DataGridTemplatedColumn
Header="Order">
<DataGridTemplatedColumn.CellTemplate>
<DataTemplate>
<TextBox
Text="{Binding Order, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplatedColumn.CellTemplate>
</DataGridTemplatedColumn>
</DataGrid.Columns>
</DataGrid>
................
希望这会有所帮助,如果不能,请提供您的示例代码,我会尝试添加一些基于它的示例