واقعآ متشکرم و خسته نباشید .
نظرات مطالب
<ListBox ItemsSource="{Binding Persons}" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.ScrollUnit="Pixel" VirtualizingPanel.IsVirtualizingWhenGrouping="True" VirtualizingPanel.CacheLength="100" VirtualizingPanel.CacheLengthUnit="Pixel"/>
using System; using System.Reflection; using System.Windows; using System.Windows.Controls; namespace DNTProfiler.Common.Behaviors { /// <summary> /// Smooth scrolling VirtualizingStackPanels, without sacrificing virtualization. /// </summary> public static class PixelBasedScrollingBehavior { private static readonly MethodInfo _setScrollUnit = typeof(VirtualizingPanel) .GetMethod("SetScrollUnit", BindingFlags.Public | BindingFlags.Static); private static readonly MethodInfo _setCacheLengthUnit = typeof(VirtualizingPanel) .GetMethod("SetCacheLengthUnit", BindingFlags.Public | BindingFlags.Static); private static readonly MethodInfo _setCacheLength = typeof(VirtualizingPanel) .GetMethod("SetCacheLength", BindingFlags.Public | BindingFlags.Static); public static bool GetIsEnabled(DependencyObject obj) { return (bool)obj.GetValue(IsEnabledProperty); } public static void SetIsEnabled(DependencyObject obj, bool value) { obj.SetValue(IsEnabledProperty, value); } public static readonly DependencyProperty IsEnabledProperty = DependencyProperty.RegisterAttached("IsEnabled", typeof(bool), typeof(PixelBasedScrollingBehavior), new UIPropertyMetadata(false, handleIsEnabledChanged)); private static void handleIsEnabledChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { var listView = obj as ListView; if (listView == null) { throw new InvalidOperationException("This behavior can only be attached to a ListView."); } if (_setScrollUnit != null) { // It's .NET 4.5 _setScrollUnit.Invoke(listView, new object[] { listView, /*Pixel*/ 0 }); } if (_setCacheLengthUnit != null) { // It's .NET 4.5 _setCacheLengthUnit.Invoke(listView, new object[] { listView, /*Pixel*/ 0 }); } if (_setCacheLength != null) { // It's .NET 4.5 var type = Type.GetType("System.Windows.Controls.VirtualizationCacheLength, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"); if (type == null) return; var instance = Activator.CreateInstance(type, 100.0); _setCacheLength.Invoke(listView, new[] { listView, instance }); } } } }
<ListView ItemsSource="{Binding}" behaviors:PixelBasedScrollingBehavior.IsEnabled="True">
ORDER BY CASE WHEN @IdOrderList = 1 THEN bb.Inventory END DESC, CASE WHEN @IdOrderList = 2 THEN bb.TotalPrice END ASC, CASE WHEN @IdOrderList = 3 THEN bb.TotalPrice END DESC, CASE WHEN @IdOrderList = 4 THEN bb.Inventory END ASC, CASE WHEN @IdOrderList = 5 THEN bb.Inventory END DESC, CASE WHEN @IdOrderList = 5 THEN bb.TotalPrice END ASC, --CASE WHEN @IdOrderList = 6 THEN bb.Inventory END DESC, --CASE WHEN @IdOrderList = 6 THEN bb.TotalPrice END DESC CASE @IdOrderList WHEN 5 THEN bb.Inventory END DESC, bb.TotalPrice, CASE @IdOrderList WHEN 6 THEN bb.Inventory END DESC, bb.TotalPrice DESC OFFSET (@PageIndex-1)*20 ROWS FETCH NEXT 20 ROWS ONLY
declare @t table (id char(1) primary key, parent char(1)); insert @t values ('A',null), --Level 1 ('B', 'A'), ('C', 'A'), --Level 2 ('D', 'B'), ('E', 'B'),('R','B'), ('F', 'C'), --Level 3 ('G', 'D'), --Level 4 ('H', 'G'), ('I', 'G'); --Level 5 ;with cte as ( select id, rnk=0, concats = cast(id as varchar(10)) from @t where parent is null union all select t.id, rnk+1, cast(cte.concats + t.id as varchar(10)) from cte join @t t on cte.id = t.parent ) select * from cte /* id rnk concats ---- ----------- ---------- A 0 A B 1 AB C 1 AC F 2 ACF D 2 ABD E 2 ABE R 2 ABR G 3 ABDG H 4 ABDGH I 4 ABDGI */ ;with cte as ( select id, rnk=0, concats = cast(id as varchar(10)) from @t where parent is null union all select t.id, rnk+1, cast(cte.concats + t.id as varchar(10)) from cte join @t t on cte.id = t.parent ) select stuff(d.list,1,1,'') as concats from (select ','+concats from cte for xml path(''))d(list) /* concats ---------------------------------------- A,AB,AC,ACF,ABD,ABE,ABR,ABDG,ABDGH,ABDGI */
double DifferenceMinute = ts.TotalMinutes;
else if (DateTime.Now.Date == LastDate.Date && (DifferenceMinute<60 && (DateTime.Now.Hour-LastDate.Hour<=1)) ) Result.Append("در " + ConvertMinuteToString((int)DifferenceMinute) + " دقیقه قبل " + " ، " + GetHour(LastDate));
public string ConvertMinuteToString(int minute) { string Result = ""; string[] minLessTen = { "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده" }; string[] minLesstwenty = { "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" }; Dictionary<int,string> minmore=new Dictionary<int,string> { {2,"بیست"}, {3,"سی"}, {4,"چهل"}, {5,"پنجاه"} }; if (minute <= 10) Result = minLessTen[minute - 1]; else if (minute < 20) Result = minLesstwenty[(minute%10)-1]; else if ((minute / 10) >= 2) { Result = minmore[minute / 10]; if (minute % 10 > 0) Result += " و " + minLessTen[(minute % 10) - 1]; } return Result; }