我一直無(wú)法找到一個(gè)干凈,簡(jiǎn)單的示例,說(shuō)明如何正確地使用MVVM框架內(nèi)具有依賴項(xiàng)屬性的WPF實(shí)現(xiàn)用戶控件。每當(dāng)我為用戶控件分配數(shù)據(jù)上下文時(shí),下面的代碼都會(huì)失敗。我在嘗試著:從調(diào)用ItemsControl設(shè)置依賴項(xiàng)屬性,然后使該依賴項(xiàng)屬性的值可用于調(diào)用的usercontrol的ViewModel。我還有很多東西要學(xué)習(xí),并衷心感謝您的幫助。這是使用依賴項(xiàng)屬性TextInControl調(diào)用InkStringView用戶控件的最頂層用戶控件中的ItemsControl(來(lái)自另一個(gè)問(wèn)題的示例)。 <ItemsControl ItemsSource="{Binding Strings}" x:Name="self" > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Vertical" /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <DataTemplate.Resources> <Style TargetType="v:InkStringView"> <Setter Property="FontSize" Value="25"/> <Setter Property="HorizontalAlignment" Value="Left"/> </Style> </DataTemplate.Resources> <v:InkStringView TextInControl="{Binding text, ElementName=self}" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>這是具有依賴項(xiàng)屬性的InkStringView用戶控件。 XAML:<UserControl x:Class="Nova5.UI.Views.Ink.InkStringView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" x:Name="mainInkStringView" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"><Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Text="{Binding TextInControl, ElementName=mainInkStringView}" /> <TextBlock Grid.Row="1" Text="I am row 1" /></Grid>
如何正確綁定到MVVM框架中用戶控件的依賴項(xiàng)屬性
呼啦一陣風(fēng)
2019-12-05 13:10:57