mirror of
https://github.com/Stone-Red-Code/docs-desktop.git
synced 2026-09-08 23:43:29 +02:00
Content update - Read-only dependency properties (user story 1878471) (#1230)
* Improve collection-type dp snippets that are readonly. * Add article, snippets, toc, and redirects * Minor edit * Update target framework to .NET 6.0
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
<Application x:Class="Application"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:CodeSampleVb"
|
||||
StartupUri="MainWindow.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
Class Application
|
||||
|
||||
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
|
||||
' can be handled in this file.
|
||||
|
||||
End Class
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
Imports System.Windows
|
||||
|
||||
'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found.
|
||||
'1st parameter: where theme specific resource dictionaries are located
|
||||
'(used if a resource is not found in the page,
|
||||
' or application resource dictionaries)
|
||||
|
||||
'2nd parameter: where the generic resource dictionary is located
|
||||
'(used if a resource is not found in the page,
|
||||
'app, and any theme specific resource dictionaries)
|
||||
<Assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)>
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<RootNamespace>CodeSampleVb</RootNamespace>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Import Include="System.Windows" />
|
||||
<Import Include="System.Windows.Controls" />
|
||||
<Import Include="System.Windows.Data" />
|
||||
<Import Include="System.Windows.Documents" />
|
||||
<Import Include="System.Windows.Input" />
|
||||
<Import Include="System.Windows.Media" />
|
||||
<Import Include="System.Windows.Media.Imaging" />
|
||||
<Import Include="System.Windows.Navigation" />
|
||||
<Import Include="System.Windows.Shapes" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
<Window x:Class="CodeSampleVb.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Readonly dependency properties" Height="100" Width="400">
|
||||
|
||||
<StackPanel>
|
||||
|
||||
<Button Click="Button_Click">Increment property value</Button>
|
||||
<Label Name="lblFishCount" Content="Aquarium fish count: 0"/>
|
||||
|
||||
</StackPanel>
|
||||
</Window>
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
Namespace CodeSampleVb
|
||||
|
||||
' <summary>
|
||||
' Interaction logic for MainWindow.xaml.
|
||||
' </summary>
|
||||
Partial Public Class MainWindow
|
||||
Inherits Window
|
||||
|
||||
ReadOnly _aquarium As New Aquarium()
|
||||
|
||||
Public Sub New()
|
||||
InitializeComponent()
|
||||
End Sub
|
||||
|
||||
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
|
||||
' Test setting a value.
|
||||
_aquarium.SetValue(Aquarium.FishCountPropertyKey, _aquarium.FishCount + 1)
|
||||
lblFishCount.Content = $"Aquarium fish count: {_aquarium.FishCount}"
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
'<RegisterReadOnlyDependencyProperty>
|
||||
Public Class Aquarium
|
||||
Inherits DependencyObject
|
||||
|
||||
' Register a dependency property with the specified property name,
|
||||
' property type, owner type, And property metadata.
|
||||
' Assign DependencyPropertyKey to a nonpublic field.
|
||||
Friend Shared ReadOnly FishCountPropertyKey As DependencyPropertyKey =
|
||||
DependencyProperty.RegisterReadOnly(
|
||||
name:="FishCount",
|
||||
propertyType:=GetType(Integer),
|
||||
ownerType:=GetType(Aquarium),
|
||||
typeMetadata:=New FrameworkPropertyMetadata())
|
||||
|
||||
' Declare a public get accessor.
|
||||
Public ReadOnly Property FishCount As Integer
|
||||
Get
|
||||
Return GetValue(FishCountPropertyKey.DependencyProperty)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
'</RegisterReadOnlyDependencyProperty>
|
||||
|
||||
End Namespace
|
||||
Reference in New Issue
Block a user