我正在使用Windows Phone 8应用程序。在DataTemplate中,我有两个文本块和按钮。 在第一个文本块中,我绑定了一个名字字段,在另一个文本块中,我尝试编写" hello world" (或其他一些字符串)当我点击按钮时。
我试着这样:
<ListBox x:Name="testListBox" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Name}" Margin="0,0,10,118"></TextBlock>
<TextBlock Text="{Binding test}" Margin="0,43,10,68"></TextBlock>
<Button Content="Test" Click="Button_Click" Margin="0,88,0,0"></Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
class DevicesClass
{
public string test { get; set; }
public string Name { get; set; }
}
private void devicesMethod(JObject bla)
{
List<DevicesClass> AllDevicesList = new List<DevicesClass>();
foreach (JToken devices in bla["devices"])
{
DevicesClass AllDevices = new DevicesClass() { Name = devices["name"].ToString() };
AllDevicesList.Add(AllDevices);
}
this.testListBox.ItemsSource = AllDevicesList;}
private void Button_Click(object sender, RoutedEventArgs e)
{
light.test = "HelloWorld";
DataContext = light;
}
当我点按按钮时没有任何反应。我想要一些建议如何做到这一点。
感谢您的建议。
答案 0 :(得分:0)
尝试获取TextBlock Element In DataTemplate
&amp;设置其文本;
<ListBox x:Name="testListBox" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Name}" Margin="0,0,10,118"></TextBlock>
<TextBlock Text="{Binding test}" Margin="0,43,10,68"></TextBlock>
<Button Content="Test" Click="Button_Click" Margin="0,88,0,0"></Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
在你的活动中;
private void Button_Click(object sender, RoutedEventArgs e)
{
var buttonElement = (Button)e.OriginalSource;
var rootParent = (Grid)buttonElement.Parent;
var yourTextBlock = (TextBlock)rootParent.Children.ElementAt(1);
yourTextBlock.Text = "Hello, World!";
}
调试按钮事件处理程序&amp;看到你得到了正确的元素。 看看这是否有帮助。