通过C#代码将Json数据绑定到TextBlock
我用C代码制作文本块,并希望将JSON数据绑定到它。此时此刻,我想这样做:通过C#代码将Json数据绑定到TextBlock,c#,json,xaml,C#,Json,Xaml,我用C代码制作文本块,并希望将JSON数据绑定到它。此时此刻,我想这样做: if (actualStock == true) { TextBlock TBActualStock = new TextBlock(); TBActualStock.Text = "Actuele voorraad: "; TBActualStock.FontSize = 18; STACKA
if (actualStock == true)
{
TextBlock TBActualStock = new TextBlock();
TBActualStock.Text = "Actuele voorraad: ";
TBActualStock.FontSize = 18;
STACKActualStockDeliverTime.Children.Insert(1, TBActualStock);
TextBlock TBBindActualStock = new TextBlock();
TBBindActualStock.Text = "{Binding ActualStock}"; //this is where it should bind
TBBindActualStock.FontSize = 18;
STACKActualStockDeliverTime2.Children.Insert(1, TBBindActualStock);
}
这是我的XAML代码:
DataContext="{Binding Item}"
d:DataContext="{Binding Groups[0].Items[0]}">
<Grid.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Grid.ChildrenTransitions>
<Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.Background>
<ImageBrush ImageSource="/Assets/BackGroundGAC.jpg" Stretch="UniformToFill"/>
</Grid.Background>
<Grid Grid.Row="1" x:Name="contentRegion">
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<StackPanel x:Name="STACKActualStockDeliverTime">
<TextBlock x:Name="HEADERActualStockDeliverTime" FontSize="24" Text="Voorraad en levertijd"></TextBlock>
</StackPanel>
<StackPanel x:Name="STACKActualStockDeliverTime2">
<TextBlock x:Name="Headert" FontSize="24" Text=""></TextBlock>
</StackPanel>
</StackPanel>
DataContext=“{Binding Item}”
d:DataContext=“{绑定组[0]。项[0]}”>
现在我想将Json数据添加到我在C代码中生成的文本块中。我知道在XAML中我应该使用{Binding description}//description是我的json对象的一部分,因此可以工作
,但是如果我在C#代码中这样做,它只会将文本设置为{Binding description}
你知道我怎样才能解决这个问题吗
ps:我需要用C代码而不是XAML进行绑定。如果您是用代码进行绑定,您不应该这样做,只需指定值即可 如果要在代码中绑定,请使用绑定操作
Binding binding = new Binding();
binding.Path = new PropertyPath("ActualStock");
binding.Source = sourceObject;
BindingOperations.SetBinding(TBBindActualStock, TextBlock.TextProperty, binding);
引自
在XAML中
<TextBlock Text="{Binding ActualStock}
您可以像这样对其使用绑定类
Binding myBinding = new Binding("ActualStock");
myBinding.Source = myDataObject;//here is your data source.
TBBindActualStock.SetBinding(TextBlock.TextProperty, myBinding);
如果我在XAML中创建一个textblock并说{Binding ActualStock},它将通过XAML代码绑定,我不希望这样。我应该为我的对象创建一个新实例以获得ActualStock吗?正如您在我上传的XAML文件中看到的,我将项目绑定到datacontext。我应该在C#中做类似的事情吗?你应该利用InotifyProperty为你的财产更改你的方向正确:)谢谢你的帮助。看一看差异的正确答案。
Binding myBinding = new Binding("ActualStock");
myBinding.Source = myDataObject;//here is your data source.
TBBindActualStock.SetBinding(TextBlock.TextProperty, myBinding);