[英]Accessing Properties of elements in a Data Template
如何从c#中访问以下XAML代码中的Textblock(txtlink)属性? 引用txtlink。 不起作用,它会导致错误
txtlink名称在当前上下文中不存在
<Grid Grid.Row="1">
<ListBox ItemsSource="{Binding CurrentRss.Channel.NewsItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Style="{StaticResource ImageButtonStyle}" Click="Button_Click" >
<Image Source="{Binding Image}"/>
</Button>
<TextBlock Grid.Column="1" Text="{Binding Title}"/>
<TextBlock x:Name="txtlink" Text="{Binding Link}" Background="Black" Foreground="#FFD1DA0B"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
使用SelectedItem绑定,那么您将有权访问所选项目。 从那里您可以访问Link属性。
xaml:
<ListBox ItemsSource="{Binding CurrentRss.Channel.NewsItems}" SelectedItem="{Binding SelectedNewsItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Style="{StaticResource ImageButtonStyle}" Click="Button_Click" >
<Image Source="{Binding Image}"/>
</Button>
<TextBlock Grid.Column="1" Text="{Binding Title}"/>
<TextBlock x:Name="txtlink" Text="{Binding Link}" Background="Black" Foreground="#FFD1DA0B"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
并在您的ViewModel中:
public NewsItem SelectedNewsItem {get;set;}//INPC when it is being set check for null and then process the selected item.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.