在mMaterialCentreGroupListView.xaml
文件中,此行是为MaterialCentreGroupView
编写的。但我看不到任何用于访问viewmodel属性的数据上下文。它运作良好。下面是代码。
<vw:MaterialCentreGroupView
Style="{StaticResource DetailedViewStyle}"
DataContext="{Binding SelectedMaterialCentreGroup}"/>
视图
<UserControl x:Class="MyBooks.View.MaterialCentreGroupView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
MinWidth="290" MaxWidth="290" Padding="20"
Background="#eee">
<UserControl.Resources>
<ResourceDictionary Source="ViewResources.xaml" />
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label
Grid.Row="0" Grid.Column="0"
Content="{Resx ResxName=MyBooks.Properties.Strings, Key=AccountCategoryListView_Name_Label}"
HorizontalAlignment="Right"/>
<TextBox
x:Name="CategoryName"
MaxLength="50"
Style="{StaticResource FormControlStyle}"
Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2"
Text="{Binding Path=Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/>
请向我解释发生了什么以及如何发生约束?
答案 0 :(得分:1)
我认为DataContext要么在代码隐藏中设置(文件名称与.xaml文件相同,但扩展名为.cs)。寻找像DataContext = new SomeViewModel();
这样的代码或者,如果在另一个控件中使用此UserControl,可以在其上显式设置DataContext,否则,它将从其父级继承(可能从父级继承,也可能不从其父级继承),因此on,如果没有在XAML或代码隐藏中明确设置。)
答案 1 :(得分:0)
看'Resx'绑定
<Label
Grid.Row="0" Grid.Column="0"
Content="{Resx ResxName=MyBooks.Properties.Strings, Key=AccountCategoryListView_Name_Label}"
HorizontalAlignment="Right"/>
有关resx绑定和使用的更多信息,请参阅以下链接 Resx binding and usage