C# Wpf集合双向绑定
标签:pre site string mod table ack att target tar
ObservableCollection 用于同步更新集合,删除集合内的元素,界面也会同步删除,
前台代码
"PriceSet" Margin="0,10,0,0" Visibility="Visible">
"Center" Margin="21,12,0,0" Name="listBox_Price" VerticalAlignment="Top" Height="auto" Width="auto" MinHeight="200" MinWidth="350">
"{x:Type ListBox}">
"Horizontal" IsItemsHost="True"/>
"Horizontal">
"游戏时长:" Tag="{Binding Path=Price_ID}" Margin="10,10"/>
"60" Text="{Binding Path=TimeLong}" Margin="10,10"/>
"支付人民币:" Margin="10,10"/>
"60" Text="{Binding Path=PayPrice}" Margin="10,10"/>
"投币数量:" Margin="10,10"/>
"60" Text="{Binding Path=CoinNum}" Margin="10,10"/>
"Horizontal" HorizontalAlignment="Center" Margin="20,20">
后台代码:
this.listBox_Price.ItemsSource = Price.PriceList;
MyPropertyChanged用于同步类发生
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using System.Data;
using System.Collections.ObjectModel;
namespace Jas.Remoting.SqliteHelper
{
[Serializable]
public class Price : INotifyPropertyChanged
{
#region Field
///
/// 价格ID
///
private int _Price_ID;
///
/// 游戏时长
///
private int _TimeLong;
///
/// 支付价格
///
private float _PayPrice;
///
/// 投币数量
///
private int _CoinNum;
///
/// 是否被选中
///
private bool _bSelected = false;
///
/// 价格列表
///
private static ObservableCollection _PriceList;
#endregion
#region Property
///
/// 价格ID
///
public int Price_ID
{
get { return _Price_ID; }
set { _Price_ID = value; MyPropertyChanged(nameof(Price_ID)); }
}
///
/// 游戏时长
///
public int TimeLong
{
get { return _TimeLong; }
set { _TimeLong = value; MyPropertyChanged(nameof(TimeLong)); }
}
///
/// 支付价格
///
public float PayPrice
{
get { return _PayPrice; }
set { _PayPrice = value; MyPropertyChanged(nameof(PayPrice)); }
}
///
/// 投币数量
///
public int CoinNum
{
get { return _CoinNum; }
set { _CoinNum = value; MyPropertyChanged(nameof(CoinNum)); }
}
///
/// 是否被选中
///
public bool bSelected
{
get { return _bSelected; }
set { _bSelected = value; MyPropertyChanged(nameof(bSelected)); }
}
///
/// 价格列表
///
public static ObservableCollection PriceList
{
get { return _PriceList; }
set { _PriceList = value; }
}
#endregion
#region Event
[field: NonSerializedAttribute()]
public event PropertyChangedEventHandler PropertyChanged;
#endregion
#region Interface Implementation
private void MyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
#endregion
public static void CreatePriceList(DataTable dt)
{
_PriceList = new ObservableCollection();
foreach(DataRow dr in dt.Rows)
{
Price price = new Price();
price._Price_ID= Convert.ToInt32(dr[Field.Price_ID]);
price._TimeLong = Convert.ToInt32(dr[Field.TimeLong]);
price._PayPrice = Convert.ToInt32(dr[Field.Price]);
price._CoinNum = Convert.ToInt32(dr[Field.CoinNum]);
_PriceList.Add(price);
}
}
}
}
C# Wpf集合双向绑定
标签:pre site string mod table ack att target tar
原文地址:https://www.cnblogs.com/ChangTan/p/9855491.html
评论