0

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}"/>

请向我解释发生了什么以及绑定是如何发生的?

4

2 回答 2

1

我假设 DataContext 在代码隐藏中设置(文件名称与 .xaml 文件相同,但扩展名为 .cs)。寻找像 DataContext = new SomeViewModel(); 这样的代码

或者,如果此 UserControl 正在另一个控件中使用,则可以在其上显式设置 DataContext,或者,如果没有,它将从其父级继承(可能从父级继承,也可能不从父级继承,依此类推,如果未在 XAML 或代码隐藏中显式设置)。

于 2012-04-18T01:47:29.880 回答
0

看 'Resx' 绑定

<Label 
    Grid.Row="0" Grid.Column="0" 
    Content="{Resx ResxName=MyBooks.Properties.Strings, Key=AccountCategoryListView_Name_Label}" 
    HorizontalAlignment="Right"/> 

有关 resx 绑定和使用的更多信息,请参阅下面的链接 Resx 绑定和使用

于 2012-04-18T01:54:56.753 回答