Рейтинг@Mail.ru
aave

aave

Print Friendly, PDF & Email

В C# есть оператор, который возвращает размер типа, занимаемый в памяти:

sizeof(float)

Его аналог в VB.NET:

Marshal.SizeOf(GetType(Single))
Print Friendly, PDF & Email
Подробнее ...
Print Friendly, PDF & Email

Чтобы сделать сортируемую наблюдаемую коллекцию в WPF, можно создать методы расширения для типа ObservableCollection:

Imports System.Collections.ObjectModel
Imports System.Runtime.CompilerServices

Module ObservableCollectionExtensions

    <Extension>
    Public Sub Sort(Of T)(ByRef collection As ObservableCollection(Of T), comparison As Comparison(Of T))
        Dim sortableList = New List(Of T)(collection)
        sortableList.Sort(comparison)
        For i As Integer = 0 To sortableList.Count - 1
            collection.Move(collection.IndexOf(sortableList(i)), i)
        Next
    End Sub


 <Extension>
    Public Sub Sort(Of T As IComparable)(ByRef collection As ObservableCollection(Of T))
        If (collection.Count > 1) Then
            Dim sortableList As New List(Of T)(collection)
            Dim comp As Comparison(Of T) = Function(a, b) a.CompareTo(b)
            sortableList.Sort(comp)
            For i As Integer = 0 To sortableList.Count - 1
                collection.Move(collection.IndexOf(sortableList(i)), i)
            Next
        End If
    End Sub

End Module

Использование:

    MyCollection.Sort(Function(a, b) a.CompareTo(b))

или просто:

    MyCollection.Sort()
Print Friendly, PDF & Email
Подробнее ...
Print Friendly, PDF & Email

Чтобы изменить стиль линий сетки в WPF:

    Private Sub ShowGridLines()
        Dim t = Type.GetType("System.Windows.Controls.Grid+GridLinesRenderer," _
                                 & " PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")
        Dim glr = Activator.CreateInstance(t)
        glr.GetType().GetField("s_oddDashPen", Reflection.BindingFlags.Static Or Reflection.BindingFlags.NonPublic).SetValue(glr, New Pen(Brushes.Silver, 0.2))
        glr.GetType().GetField("s_evenDashPen", Reflection.BindingFlags.Static Or Reflection.BindingFlags.NonPublic).SetValue(glr, New Pen(Brushes.Silver, 0.2))
        matrixGrid.ShowGridLines = True

    End Sub
Print Friendly, PDF & Email
Подробнее ...
Print Friendly, PDF & Email

Чтобы обновить code-behind значение значение свойства, привязанного к текстовому полю, по нажатию клавиши "Ввод" сначала в разметке XAML:

<TextBox Text="{Binding MyData}" KeyUp="UpdatePropertyTrigger" />

А далее в коде пишем обработчик:

Private Sub UpdatePropertyTrigger(sender As Object, e As KeyEventArgs)
    If (e.Key = Key.Enter) Then
        Dim tb As TextBox = CType(sender, TextBox)
        tb.GetBindingExpression(TextBox.TextProperty).UpdateSource()
    End If
End Sub
Print Friendly, PDF & Email
Подробнее ...
Подписаться на этот канал RSS